diff --git a/.jekyll-cache/.gitignore b/.jekyll-cache/.gitignore new file mode 100644 index 0000000..f244efa --- /dev/null +++ b/.jekyll-cache/.gitignore @@ -0,0 +1,2 @@ +# ignore everything in this directory +* diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 new file mode 100644 index 0000000..2487190 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 @@ -0,0 +1 @@ +I"7{"source"=>"C:/Users/victo/sp25", "destination"=>"C:/Users/victo/sp25/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/:categories/:year/:month/:day/:title/"}, "staffers"=>{"sort_by"=>"name"}, "modules"=>nil, "schedules"=>nil, "announcements"=>nil, "labs"=>{"output"=>true, "permalink"=>"/:collection/:path/"}, "hw"=>{"output"=>true, "permalink"=>"/:collection/:path/"}, "projects"=>{"output"=>true, "permalink"=>"/:collection/:path/"}}, "safe"=>false, "include"=>["LICENSE", ".htaccess", "robots.txt"], "exclude"=>[".sass-cache/", ".jekyll-cache/", "gemfiles/", "Gemfile", "Gemfile.lock", "vendor/", "README.md", "CONTRIBUTING.md", "tmp/", "spec/", "docs/", "node_modules/", ".sass-cache", ".jekyll-cache", "gemfiles", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>["jekyll-sitemap", "jekyll-seo-tag", "jekyll-github-metadata", "jekyll-include-cache"], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"\n\n", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>"/sp25", "show_dir_listing"=>false, "permalink"=>"pretty", "paginate_path"=>"/page:num", "timezone"=>"America/Los_Angeles", "quiet"=>false, "verbose"=>false, "defaults"=>[{"scope"=>{"path"=>"", "type"=>"labs"}, "values"=>{"layout"=>"lab", "nav_exclude"=>true}}, {"scope"=>{"path"=>"", "type"=>"hw"}, "values"=>{"layout"=>"hw", "nav_exclude"=>true}}, {"scope"=>{"path"=>"", "type"=>"projects"}, "values"=>{"layout"=>"project", "nav_exclude"=>true}}, {"scope"=>{"path"=>"_staffers", "type"=>"staffers"}, "values"=>{"layout"=>"staffer", "height"=>300, "subpath"=>"/assets/images/", "width"=>300}}, {"scope"=>{"path"=>"", "type"=>"modules"}, "values"=>{"layout"=>"module"}}, {"scope"=>{"path"=>"", "type"=>"schedules"}, "values"=>{"layout"=>"schedule"}}, {"scope"=>{"path"=>"", "type"=>"announcements"}, "values"=>{"layout"=>"announcement"}}], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false}, "title"=>"CS10 Spring 2025", "tagline"=>"The Beauty and Joy of Computing", "description"=>"A gentle but thorough introduction to computer science.", "author"=>"Victoria Phelps", "color_scheme"=>"light", "url"=>"http://localhost:4000", "course"=>"CS 10", "course_email"=>"cs10@berkeley.edu", "gradescope_course_id"=>831412, "bcourses_course_id"=>123456, "ed_course_id"=>123456, "sememster"=>"fa25", "course_department"=>"dsus", "class_archive_path"=>"/", "aux_links"=>{"Ed"=>["https://edstem.org/us/courses/63916/discussion"], "OH Queue"=>["https://oh.cs10.org"], "Snap!"=>["https://snap.berkeley.edu/run"], "iClicker"=>["https://student.iclicker.com/#/login"], "Gradescope"=>["https://www.gradescope.com/courses/831412"]}, "sass"=>{"style"=>"expanded", "sass_dir"=>"_sass", "sourcemap"=>"always", "quiet_deps"=>true, "verbose"=>false}, "theme"=>"just-the-docs", "search_enabled"=>true, "heading_anchors"=>true, "footer_content"=>true, "back_to_top"=>true, "back_to_top_text"=>"Back to Top", "last_edit_timestamp"=>true, "last_edit_time_format"=>"%m %d, %Y at %H:%M", "compress_html"=>{"clippings"=>"all", "comments"=>"all", "endings"=>"all", "startings"=>[], "blanklines"=>false, "profile"=>false}, "livereload_port"=>35729, "serving"=>true, "watch"=>true}:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/03/0f97a81cd495f4d13d69641c59a9f0ec97abcc6ba71c746007153cb634760b b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/03/0f97a81cd495f4d13d69641c59a9f0ec97abcc6ba71c746007153cb634760b new file mode 100644 index 0000000..8e1d1f1 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/03/0f97a81cd495f4d13d69641c59a9f0ec97abcc6ba71c746007153cb634760b @@ -0,0 +1,119 @@ +I"Î%

Version 3.0. Last Updated: 2024-09-08.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +
+

Any important updates or clarifications will be made here

+
+ +

To begin, load this starter project

+ +

Project 1 Walkthrough Guide.pdf

+ +

Content

+ +

I. Introduction
+II. Part 1: “game over” Block
+III. Part 2: “matching slots” Block
+IV. Part 3: “update score” Block
+V. Rubric
+VI. Feedback Form

+ +

Submission Guidelines

+ + + +

Preface

+ +

Do remember that while you may discuss general ideas with other students, sharing code with anyone but your partner would be academically dishonest.

+ +

Important: Ensure that you use the starter file we’ve linked below- do NOT create your own Snap! file for this project!

+ +

Note: The Project Feedback Form will ask about how long you took at each part of the project. Please keep track of your time frame as you work through the project. For example, if you work for 30 minutes on Thursday, then 40 minutes on Saturday for part 2, you spend 1 hour and 10 minutes total on part 2.

+ +

Introductions

+ +

In this project, you are required to work with one (and only one) partner (and with assistance from course staff as needed) to finish three blocks in an existing program to play Wordle™-lite, a word-guessing game designed for two human players.

+ +

In the game, the first player (Player 1) will enter a secret code, and the second player (Player 2) will try to guess that code. Player 2 starts with 100 points, and every wrong guess costs them 10 points, but they earn back the number of letters that match perfectly in the same place in both words (in Wordle™ this would be the green letters). This back-and-forth will continue until Player 2 successfully guesses the secret code or the score is not positive, and the game ends.

+ +

Here is an example of the game being played (make sure to resize HISTORY to see it better):

+ +
+

Program: Welcome to Wordle™-lite, a word guessing game. Ready player one: enter a secret word...
+Player 1: love
+Program: Ready player two: time to guess the secret word; you start with a score of 100 (wrong guesses cost you 10 but each matched letter earns back 1); the game ends when you guess the word or the score gets to 0. What is your guess? (hint: it’s a 4-letter word)
+Player 2: like
+Program: Player two: your guess of “like” matched l--e; your score is now 92. What is your guess? (hint: it’s a 4 letter word)
+Player 2: lose
+Program: Player two: your guess of “lose” matched lo-e; your score is now 85. What is your guess? (hint: it’s a 4 letter word)
+Player 2: love
+Program: “love” is correct, great job! Final score: 85/100

+
+ +

Example of Wordlite testcase described above, with person infront of Wheeler hall

+ +

Some notes – nothing in our code prevents either Player 1 or Player 2 from typing a gibberish word. We would hope Player 1 doesn’t do that, since the game is almost impossible if the secret word is a set of random letters. However, one strategy that Player 2 might employ (and this game allows it, making it easier than the actual Wordle™ game) is to type a word (say) of all e’s to see where the e’s are in the word. Also, the guesses Player 2 enters aren’t checked to see if they’re the same length as the secret word. When the guessed word is longer, we only look at the first N slots of the guess (where N is the length of the secret word). When the guessed word is shorter, it just shows the letters that weren’t guessed as missed “-” letters.

+ +

If you’re having trouble, please contact the course staff for assistance — Ed, Office Hours, and Labs are all here to help you feel good about the work you’re doing! If you can’t make the times, tell us, and we’ll figure out how you can still get support. But, we won’t know when or how to help unless you let us know.

+ +

Part 1: <game over? guess:[] secret: [] score: ()> Block

+ +

First, you’ll build a predicate block (aka the “game over” block) that will know when the game is over. This should report True if the guess equals the secret or if the score is not positive, and False otherwise. Here are some examples:

+ +

Testcases for Part 1 Block

+ +

Part 2: (matching “green” slots between guess: [ ] and secret: []) Block

+ +

Next, you’ll build a reporter block (aka the “matching slots” block) that can tell a player how close they are to guessing the secret code by indicating the correct “slots”. Capitalization should not matter (i.e., the game should read r and R as the same), but thanks to the way Snap! implemented its “=” block, you don’t have to worry about making a special case, just using “=” will treat lowercase r and uppercase R the same!

+ +

Given two inputs, a guess and a secret code, the matching slots block should report a word of letters or dashes to indicate the matching slots between guess and secret, the same length as secret, in which every matched letter is the letter itself, and any missed letter is a dash. Here are some examples to make this clear:

+ +

Testcases for Part 2 Block

+ +

Part 3: (update score based on matched slots: [] and score: ()) Block

+ +

Finally, you’ll build a reporter block (aka the “update score” block) that will take the result of the matched slots and the old score and report an updated score based on the old score minus 10 (cost for a guess) plus the number of slots that matched (were not “-”). Here are some examples to make this clear:

+ +

Testcases for Part 3 Block

+ +

Rubric

+

You have three blocks to write and five tests (shown above) for each block, according to the following table. So a perfect score would earn (5 × 0.4) + (5 × 0.8) + (5 × 0.8) = 10 points. Gradescope’s autograder needs the number between 0 and 1, so we divide that score by 10 to send to the autograder. You should continue to work on your code until all test cases pass and the score reported by says: {“score”: 1} +If at any point you’d like to see more details about how we calculate that out-of-10 score, you can run the block we provide, a, the expected value, the actual value, how many points it is worth, and how many points you’ve earned. The sum of all the earned points is tallied in the bottom-right cell. +Note: correct, working code should handle those test cases, but not have the test cases hardcoded into your solution, they should be able to handle any inputs according to the specifications.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
BlockPointsNumber of Tests
<game over? guess:[] secret: [] score: ()>0.45
(matching “green” slots between guess: [ ] and secret: [])0.85
(update score based on matched slots: [] and score: ())0.85
+ +

Feedback Form

+

Congratulations on finishing your first project in CS10🥳. Please spend some time completing this feedback form. This will be worth 1 point of your project grade.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/04/e2a9728af7584043c5d58ae29e7cd811883e8dab15fc6287675270669a3ada b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/04/e2a9728af7584043c5d58ae29e7cd811883e8dab15fc6287675270669a3ada new file mode 100644 index 0000000..7de9a29 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/04/e2a9728af7584043c5d58ae29e7cd811883e8dab15fc6287675270669a3ada @@ -0,0 +1,2 @@ +I"

Projects

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/05/eb641ea5ad3a2fa7686f808f336d3312badbed02a527d4833eedb19c1558d4 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/05/eb641ea5ad3a2fa7686f808f336d3312badbed02a527d4833eedb19c1558d4 new file mode 100644 index 0000000..88a983b --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/05/eb641ea5ad3a2fa7686f808f336d3312badbed02a527d4833eedb19c1558d4 @@ -0,0 +1,34 @@ +I"z
+
Sep 28
+
+
+
Java & Git
+
1.1
+
+
+
Sep 29
+
+
+
SectionIntro to Java
+
Solution
+
+
+
Sep 30
+
+
+
Variables & Objects
+
1.2, 2.1
+
+
+
Oct 1
+
Lab Lab 1: Control and Functions
+
Oct 2
+
+
+
Tracing, IntLists, & Recursion
+
2.1
+
+
+
HW 1 due HW 1: Recursion
+
+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/06/583a5031ee3007f7908ab0e5a208d85ac19ea5707f2ba6b69a9ad4eb82b637 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/06/583a5031ee3007f7908ab0e5a208d85ac19ea5707f2ba6b69a9ad4eb82b637 new file mode 100644 index 0000000..d1f3700 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/06/583a5031ee3007f7908ab0e5a208d85ac19ea5707f2ba6b69a9ad4eb82b637 @@ -0,0 +1,2 @@ +I""

Control and Functions

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/08/e83f0ce5b456933e1db79aa9f1df832f67068e4c47c11f8759af931c91ceb8 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/08/e83f0ce5b456933e1db79aa9f1df832f67068e4c47c11f8759af931c91ceb8 new file mode 100644 index 0000000..ec6e560 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/08/e83f0ce5b456933e1db79aa9f1df832f67068e4c47c11f8759af931c91ceb8 @@ -0,0 +1,2 @@ +I"0

Discussion worksheets and solutions

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/09/982094cd2479737539dfbc53d416d060b4da58b1cbb570c39ae88e9e18e12a b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/09/982094cd2479737539dfbc53d416d060b4da58b1cbb570c39ae88e9e18e12a new file mode 100644 index 0000000..bc41b85 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/09/982094cd2479737539dfbc53d416d060b4da58b1cbb570c39ae88e9e18e12a @@ -0,0 +1,2 @@ +I">

A feed containing all of the class announcements.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1a/0cf8913403b26035e40e51cdf64b747c83b7a9499a53c2c1e8b7bc39adea2b b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1a/0cf8913403b26035e40e51cdf64b747c83b7a9499a53c2c1e8b7bc39adea2b new file mode 100644 index 0000000..3431674 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1a/0cf8913403b26035e40e51cdf64b747c83b7a9499a53c2c1e8b7bc39adea2b @@ -0,0 +1,2 @@ +I"

Syllabus

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1b/27f0ec320a39b32c01262ca70e5d893c34ea2259edcc45b6d598e69d7960d6 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1b/27f0ec320a39b32c01262ca70e5d893c34ea2259edcc45b6d598e69d7960d6 new file mode 100644 index 0000000..d9302dc --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1b/27f0ec320a39b32c01262ca70e5d893c34ea2259edcc45b6d598e69d7960d6 @@ -0,0 +1,2 @@ +I"D

A gentle but thorough introduction to computer science.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/22/fc4b386639740883790a587202313c9d13be30162c602a3f15bcc0dffc7565 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/22/fc4b386639740883790a587202313c9d13be30162c602a3f15bcc0dffc7565 new file mode 100644 index 0000000..2910462 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/22/fc4b386639740883790a587202313c9d13be30162c602a3f15bcc0dffc7565 @@ -0,0 +1,2 @@ +I"Ĺ

Hello! I’m Stacey, a senior majoring in bioengineering. I took CS10 in Spring 2022 and have been involved with the team ever since. I’m thrilled to be returning as Head TA this Fall. CS10 was a great, friendly introduction to computer science at Berkeley, and it really helped me dive into the field with confidence. Outside of academics, I enjoy cooking, listening to music, and being creative. Feel free to reach out with any questions! :D

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/23/0e9ea0c92417fc231c05f4a8f62496b32352502511f810eb27c27947a7fdc8 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/23/0e9ea0c92417fc231c05f4a8f62496b32352502511f810eb27c27947a7fdc8 new file mode 100644 index 0000000..a520a74 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/23/0e9ea0c92417fc231c05f4a8f62496b32352502511f810eb27c27947a7fdc8 @@ -0,0 +1,2 @@ +I"

HW 1

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/24/7a07700cf68735730e6b1af8208ea9b5bef04b6b628dd34f6d51cd452613dd b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/24/7a07700cf68735730e6b1af8208ea9b5bef04b6b628dd34f6d51cd452613dd new file mode 100644 index 0000000..bd7b8b9 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/24/7a07700cf68735730e6b1af8208ea9b5bef04b6b628dd34f6d51cd452613dd @@ -0,0 +1,2 @@ +I"7

A listing of all the course staff members.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/37/476e82bdaec0e074c03aeb0b79539eb4e4f4305fdc947c7c26eb93faa4c833 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/37/476e82bdaec0e074c03aeb0b79539eb4e4f4305fdc947c7c26eb93faa4c833 new file mode 100644 index 0000000..a2ea648 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/37/476e82bdaec0e074c03aeb0b79539eb4e4f4305fdc947c7c26eb93faa4c833 @@ -0,0 +1,2 @@ +I"

Recursion

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/38/af9dfa518a7022033d8ca4f527869c21c8735ea34deb0eadba8741573ba0d5 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/38/af9dfa518a7022033d8ca4f527869c21c8735ea34deb0eadba8741573ba0d5 new file mode 100644 index 0000000..1f33c0b --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/38/af9dfa518a7022033d8ca4f527869c21c8735ea34deb0eadba8741573ba0d5 @@ -0,0 +1,37 @@ +I"!
    +
  1. Q1: Sample Question
  2. +
  3. Q2: Another Question
  4. +
+ +

Q1: Sample Question

+ +

This is a sample question description.

+ +
def sample_question(a, b, c):
+    """
+    >>> another_question(1, 2, 3)
+    6
+    >>> another_question(0, 0, 0)
+    0
+    >>> another_question(3, 0, 0)
+    3
+    """
+    return a + b + c
+ +

Use Ok to test your code:

+ +
python3 ok -q sample_question
+
+ +

Q2: Another Question

+ +

This is another sample question description.

+ +
public class AnotherQuestion {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+        System.out.println("Outside solution");
+    }
+}
+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3a/78695388b38b5cceefaf6796b0137877514593543b91af2752d5a17e3d736c b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3a/78695388b38b5cceefaf6796b0137877514593543b91af2752d5a17e3d736c new file mode 100644 index 0000000..1bbecf8 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3a/78695388b38b5cceefaf6796b0137877514593543b91af2752d5a17e3d736c @@ -0,0 +1,2 @@ +I"

Home

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/43/0423f4d4fcfecb2551dd1e45393eb7b855cef44b5848273157dfd19c503e77 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/43/0423f4d4fcfecb2551dd1e45393eb7b855cef44b5848273157dfd19c503e77 new file mode 100644 index 0000000..45621b6 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/43/0423f4d4fcfecb2551dd1e45393eb7b855cef44b5848273157dfd19c503e77 @@ -0,0 +1,608 @@ +I"z

Syllabus

+ +

Table of contents

+ +
    +
  1. Preface
  2. +
  3. Welcome
  4. +
  5. Platforms
  6. +
  7. Primary Course Components
      +
    1. Lecture
    2. +
    3. Lab Sections
    4. +
    5. Discussion Sections
    6. +
    7. Office Hours (OH)
        +
      1. General OH
      2. +
      3. Support OH
      4. +
      5. Instructor OH
      6. +
      +
    8. +
    9. Reading Quizzes
    10. +
    11. Projects
    12. +
    +
  8. +
  9. Projects and Deadlines
      +
    1. Project-Party Schedule
    2. +
    +
  10. +
  11. Exams
  12. +
  13. Exam Clobber Policy
  14. +
  15. Grading
      +
    1. General Grading Breakdown — Percentages
    2. +
    3. Specific Grading Breakdown — Points
    4. +
    5. Grading Bins
    6. +
    +
  16. +
  17. Extension Requests
      +
    1. Lab Extensions
    2. +
    3. Project Extensions
    4. +
    5. Lecture Quiz Extensions
    6. +
    7. Discussion Worksheet Extensions
    8. +
    +
  18. +
  19. Lateness Penalties
  20. +
  21. DSP Accommodations
  22. +
  23. Academic Integrity
      +
    1. Generative AI Policy
    2. +
    +
  24. +
  25. Diversity and Inclusion Statement
  26. +
  27. Academic Accommodations Hub
  28. +
  29. EECS Student Climate & Incident Reporting Form
  30. +
+ +
+ + + +

Preface

+ +

All times below are in PST. If you have any questions, please make an EdStem post (rather than emailing) or come to office hours.

+ +

Welcome

+ +

Welcome to CS10: The Beauty and Joy of Computing!

+We’re really excited to have you on board with us this semester for a gentle, but thorough introduction to Computer Science. Our course will start out in the block-based language Snap!, but will transition into Python once you’ve learned some fundamentals of programming. By the end of the course, we hope you’ll walk away with a deeper understanding of the ideas that have come to define computer science, the ability to build your own programs, and the confidence to apply these skills in whichever field you choose to pursue.

+ +

Platforms

+ +

This semester, CS10 will run fully in-person. Consequently, remote (or hybrid) students can not be supported. However, there are make-up options for lecture, lab, and discussion attendance.

+ + + +

Primary Course Components

+ +

+ +

Lecture

+ +

Lectures will be live and in-person in Hearst Field Annex, Room A1 Mondays and Wednesdays, from 1PM to 2PM. They will be recorded, and recordings will be posted on Bcourses (see platforms section).

+ +

Lectures aim to introduce concepts and provide a “big-picture view” of material from a theoretical standpoint. Most lectures will be live and in person. However, some lectures may be pre-recorded, which you can watch on your free time, and there will be an assignment that corresponds to it to test your conceptual understanding. Attendance for these days will be through the “Lecture Quiz” solely (and no iClicker is needed for those days).

+ +

Attendance is required, and credit for attending will be through the iClicker app. If you cannot attend lecture, you will need to complete the corresponding “Lecture Quiz” on Gradescope for attendance credit. The corresponding lecture quiz will be due on Gradescope the day of the following lecture at 2359hrs. On this quiz, we will ask questions about lecture content. You may fill out our general extension form (linked below) to receive an automatic extension for lecture quizzes.

+ +

Your lowest 3 lecture-quiz scores will be automatically dropped — so you can miss up to 3 lectures (or skip 3 quizzes) without penalty, and you don’t need to inform us when you miss class. These drops are not intended to be “free-passes” to skip lectures: please reserve them for unexpected emergencies / sickness / … since missing out on content will only disrupt your learning. If there are extenuating circumstances which cause you to miss more than 3 lectures (like prolonged sickness, family emergencies, etc.) then you should visit Support OH.

+ +

Lab Sections

+ +

Labs will be held synchronously and are the primary place you will learn to program. Note that you are strongly recommended to complete all labs with a partner, and that partner-matching threads have been added to our Edstem Forum. On the first day of lab, Teaching Assistants (TAs) will help you find a partner in your assigned lab section. Labs will be located in Soda Hall, Room 438.

+ +

Lab assignments will be submitted to Gradescope. There will be two assignments for each lab: one wherein you’ll submit the code you wrote, and one with conceptual checkoff problems. If you get a full score on both Gradescope assignments, you will get credit for that lab. Labs are graded on an all-or-nothing basis, which means if you don’t get a full score on either (or both) of the two assignments, then you won’t get credit for that lab. In our lab sections, TAs and Tutors will be available to help you with the problems.

+ +

Lab X will be due the day that Lab X+1 is scheduled, at midnight. That is, each lab is due at midnight on the day that the next lab is released. For example, if Lab-12 is scheduled on Tuesday, and Lab-13 is scheduled on Thursday, then Lab-12 will be due at midnight on Thursday. There will be 18 (unconfirmed) graded labs (there’s no submission or credit for lab-1), and your lowest 2 lab scores will be dropped.

+ +

Attendance to lab sections are required and part of your grade. You can miss up to 3 lab sections without penalty so you do not need to inform us when you cannot attend lab. If there are extenuating circumstances which cause you to miss more than 5 lab sections (like prolonged sickness, family emergencies, etc.) then you should visit Support OH. Please note, the 3 “skip days” for lab sections only applies to attendance. You are still required to complete and submit the lab assignment. Lab attendance will be tracked through a Google form.

+ +

If you cannot attend a lab section, then the lab will be due before the start of the next lab. So if you either cannot reguarly attend lab, or if you miss a day, the lab will be due earlier. For example, if Lab X is due on Tuesday at 11:59PM, but you did not attend lab in-person; then, the deadline for you to submit Lab X is Tuesday at 3PM (the time before the lab section).

+ +

Discussion Sections

+ +

Discussion sections are where you will delve into the content more deeply with worksheets in traditional “pen-and-paper” style. This is where you will develop the theoretical computational skills needed to understand the basics of programming and to prepare for our exams. Discussion will be located in Evans Hall, Room 60.

+ +

Discussion attendance is mandatory. If you attend, then we will check you off in person, and there is no further action needed to receive credit other than your participation during discussion. If you do not attend (either you have a regular conflict or just miss a few classes), then you can make-up the entire attendance credit by submitting the discussion worksheet (just the required portions) to Gradescope. You must complete the entire required portions of the worksheet to receive credit. Worksheets will be graded on completion and honest effort. Discussions will also be recorded, so we recommend watching the recordings to get help with the worksheet problems.

+ +

The discussion worksheets are located on the website, and you will submit them to Gradescope. You can submit the worksheet in any format, i.e. handwritten, electronically written, typed, etc. Discussion worksheets are due the day of the next discussion section at 11:59 PM. So, if Discussion X is due when Discussion X + 1 is released.

+ +

Your two lowest discussion worksheet scores / misses will be dropped. This means you can not submit two worksheets and still get full credit in your discussion grade. Please reserve these drops for unexpected emergencies / sickness / etc. You do not need to contact us if you miss or do not attend discussion. If you need an extension, please see the extension request section.

+ +

From experience, we’ve observed that students who regularly attend and pay attention in discussions tend to do better on exams.

+ +

Office Hours (OH)

+ +

There will be three kinds of OH, described bellow. The times and locations for all OH are all posted under the ‘daily schedule’ tab on the course website. You don’t need to email / obtain an appointment. You can attend any and all OH that work for you (i.e. you don’t just have to attend your TA’s OH.)

+ +

General OH

+ +

General OH is intended for any course and content related questions. Here, you can get help with your code, debugging, understanding something conceptually, getting started on assignments, etc. General OH will be located in Soda-326

+ +

Support OH

+ +

These are intended for students to discuss their status in their class, catching up, discussing extenuating circumstances, requesting extensions, getting additional support, etc. Support OH is NOT for content related questions. So if you have questions about content, we will redirect you to General OH or Instructor OH

+ +

Instructor OH

+ +

Professor Garcia will be hosting Instructor OH (1 to 2PM on Fridays), which you may attend for more conceptual help (for instance, if you’re confused about some topic, or want to go over practice problems) or to discuss more general topics (e.g. college advice or how you’re doing in the class.) For help with specific assignments (labs and projects), you should attend Staff-OH.

+ +

Reading Quizzes

+ +

These are short assigned readings each week. We will discuss them as a class during discussion section. They are required reading, and you will answer the questions on the discussion worksheets pertaining to the readings.

+ +

Projects

+ +

These assignments will be one of the best ways for you to apply what you have learned in lecture, lab, and discussion. These will be a bit more time intensive than the other assignments and will require you to be caught up on the other components of the course.

+ + + +

Projects and Deadlines

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProjectSubmission Deadline
Project 1: Wordle™-liteWed 2/05
Project 2: Spelling-BeeMon 2/24
Project 3: 2048Mon 3/17
Project 4: Explore PostMon 3/31
Project 4: Explore Post Feedback + CommentsFri 4/11
Project 5: Final Project PorposalsMon 4/07
Project 5: Final ProjectMon 5/05
+ +

All deadlines are at 11:59PM.

+ + + +

Project-Party Schedule

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateTimeLocation
Project 1TUE 9/103-5PMSoda-438 (Woz)
Project 2WED 9/255-9PMMoffit-145
Project 3MON 10/75-9PMMoffit-145
Project 5TUE 11/123-6PMSoda-326
Project 5MON 11/143-6PMSoda-326
Project 6MON 11/255-9PMMoffit-145
Project 6MON 12/25-9PMMoffit-145
+ +

Exams

+ +

There will be three take-home, untimed, online, 48-hour, open-note exams (Quest, Midterm, and Postterm):

+ + +

Here are the specific dates for exams, although these dates may change.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExamReleaseDue
Quest 1Sat 2/08Sun 2/09
Quest 2Sat 2/15Sun 2/16
Quest 3Sat 2/22Sun 2/23
Midterm 1Sat 3/15Sun 3/16
Midterm 2Sat 3/22Sun 3/23
Midterm 3Sat 4/05Sun 4/06
Postterm 1Sat 4/19Sun 4/20
Postterm 2Sat 4/26Sun 4/27
Postterm 3Sat 5/03Sun 5/04
+ +

You will see various exams (for example, Quest 1, 2 3, etc.) Each exam type (Quest, Midterm, Postterm) has three exams. The purpose of this is to allow you to retake the exam (it will be a simliar but different exam each time), and earn credit on questions you missed in the previous exam. Quest 1, Midterm 1, and Postterm 1 are all mandatory; however, each retake is optional.

+ +

Note that on a retake exam, you only need to re-do the problems you did not receive full credit on. For instance, suppose you got full credit on Question-3 but lost points on Question-5, you could only redo Question-5.

+ +

Moreover, we will keep your question-wise maximum score between the original Quest and the retake, for each problem. For instance, suppose you re-took question 5 but scored lesser points, we’ll just keep your score from the original Quest instead!

+ +

The best way to prepare is to utilize the practice exams posted under resources and the practice exams we’ll release on PrairieLearn.

+ +

If you are an incomplete student, remember that you can only take the first exams (Quest 1, Midterm 1, and Postterm 1).

+ +

Exam Clobber Policy

+

If your percentage score on a latter exam is higher than your percentage score on a prior exam, then we’ll replace your percentage score on the prior exam with the percentage score on the latter exam. The clobber can never hurt your grade: if you score lower, no replacement will be done.

+ +

Grading

+ +

General Grading Breakdown — Percentages

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ComponentPercentage Weighting
Attendance / Participation6.25%
Labs20%
Projects36.25%
Quest6.25%
Midterm12.5%
Final Exam18.75%
+ +

Specific Grading Breakdown — Points

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ComponentPoints
Quest25
Midterm50
Postterm75
Project 1: Wordle™-lite10
Project 2: Spelling-Bee25
Project 3: 204835
Project 4: Explore15
Final Project60
Labs80
Attendance / Participation25
+ +

Total: 400 Points

+ +

Grading Bins

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Letter GradeRange
A+485-500
A460-484
A-450-459
B+440-449
B420-439
B-400-419
C+375-399
C360-374
C-350-359
D300-349
F0-299
+ +

Your total points will be rounded to the nearest integer when we compute letter grades. 0.5 will round to 1, but 0.49 will round to 0. We will not shift the bins / curve the class / ooch or round your grade beyond the listed rounding scheme, so please don’t ask.

+ +

Extension Requests

+ +

For all extension requests on any assignment, please use the Extension Request Form.

+ +

You’re also allowed to retroactively obtain extensions without penalty: i.e., you can obtain an extension even after the deadline of a lab/project, but not after the extended deadline for that assignment. The extended deadline for labs, as noted above, is the day that the next lab is scheduled, at 2359 hrs; for projects, it’s 72h after the original deadline.

+ +

NOTE: If you added the course late, please use your updated deadline as the ‘original due date’.

+ +

Important: While extensions may not be visible on PrairieLearn/Gradescope (a.k.a your assignments may be marked as ‘Late’), they will be factored in when we compute your final grade. Extensions are AUTO-approved after filling in the form.

+ +

Lab Extensions

+ +

We understand that circumstances may arise that may cause you to not be able to meet assignment deadlines.

The policy for extension requests on labs are as follows:

+ + + +

Project Extensions

+ +

The policy for project extension requests on projects are as follows:

+ + + +

Lecture Quiz Extensions

+ + + +

Discussion Worksheet Extensions

+ + + +

Lateness Penalties

+ +

Any labs or projects that are submitted late will receive half-credit, regardless of how late the submission is. For the project-4 and the final project, late submissions may not be graded since our grading staff has limited availability. If you need an extension, please utilize the extension request forms. No extensions are provided for Reading Quizzes, and late submissions are not graded.

+ +

If, after exhausting the initial extension, you still need more time — please visit us in Support-OH, wherein we’ll help you come up with a plan to catch up! Lateness penalties only apply if you don’t obtain an extension (by filling out the form or visiting Support-OH) and turn in work late.

+ +

DSP Accommodations

+ +

If you have a DSP accommodation through the university, please be sure to submit your official letter through the DSP portal. Once you have done so, we will be able to accommodate you. If you have an accommodation but are unable to promptly submit the letter for whatever reason, please reach out to Victoria jedi_force@.

+ +

UC Berkeley is committed to creating a learning environment that meets the needs of its diverse student body including students with disabilities. If you anticipate or experience any barriers to learning in this course, please feel welcome to discuss your concerns with me.

+ +

If you have a disability, or think you may have a disability, you can work with the Disabled Students’ Program (DSP) to request an official accommodation. The Disabled Students’ Program (DSP) is the campus office responsible for authorizing disability-related academic accommodations, in cooperation with the students themselves and their instructors. You can find more information about DSP, including contact information and the application process here: dsp.berkeley.edu. If you have already been approved for accommodations through DSP, please meet with me so we can develop an implementation plan together.”

+ +

Students who need academic accommodations or have questions about their accommodations should contact DSP, located at 260 CĂŠsar ChĂĄvez Student Center. Students may call 642-0518 (voice), 642-6376 (TTY), or e-mail dsp@berkeley.edu(link sends e-mail)

+ +

Academic Integrity

+ +

Let’s get honest about being honest. It is truly a disappointment to catch students cheating. All we really want is for you to learn the material- and as both current and former students, we understand that oftentimes, juggling various assignment deadlines while keeping up with material can be stressful. If you feel overwhelmed in this class, reach out! We are here to support you.

+ +

Here, we will lay out our academic integrity policies which can help you distinguish between cheating (prohibited) and collaboration (encouraged.)

+ +

Generative AI Policy

+ +

In this course, generative AI tools (e.g., ChatGPT, Copilot) are permitted solely as aids for enhancing your understanding of challenging concepts, but should not be used to produce answers, generate code, or verify solutions. Generative AI may only support conceptual growth, helping you explore topics that need further clarification.

+ +

Misuse of generative AI to obtain answers or complete assignments violates academic integrity and course standards, as all submitted work must reflect your own understanding and effort. This policy ensures AI serves as a tool for your learning without compromising the integrity of the course objectives and assessments.

+ +

What constitutes cheating?

+ + + +

What constitutes collaboration?

+ + + +

*This policy was adapted from Professor Alistair Sinclair’s policy for CS 172.

+ +

What happens if you cheat?

+ +

We take cheating extremely seriously, and will almost always pursue the strictest consequences available to us. We have advanced cheating detection software, and will routinely run this to detect cheating. These are sophisticated tools that are pretty hard to fool- any attempts to obfuscate your code to avoid detection will likely fail, and instead may result in additional consequences.

+ +

Note that you will always have a chance to explain your actions before any action is taken. If you admit that you cheated, we will apply the necessary sanctions. If you’d like to meet with us to discuss your situation, we’ll set up a meeting. Afterwards, if staff determines that you cheated and you don’t agree with that decision, we’ll proceed with a Student-Conduct Investigation.

+ +

What are the sanctions?

+ +

On projects / other assignments, the minimum penalty is negative points on that assignment alongside a referral to the Office of Student Conduct. For repeated / more egregious offences, we may grant a failing grade in the class.

+ +

On exams, we will be absolutely unforgiving. Any instance of cheating results in an immediate F in the class alongside a referral to the Office of Student Conduct.

+ +

If at any point in the academic-integrity process, a student lies or attempts to mislead course-staff —thereby wasting everyone’s time— then in addition to the aforementioned sanctions, the s will write a recommendation for the student’s dismissal and submit it to the Office of Student Conduct.

+ +

Diversity and Inclusion Statement

+ +

We recognize that Computer Science is a demographically skewed field in the United States, and that even at Berkeley, minoritized students can find themselves feeling alone. It is our goal in this course to deliver an equitable learning experience for everyone involved. Concretely, this means a few things:

+ + +

Academic Accommodations Hub

+ +

Here’s a link to the Academic Accommodations Hub.

+ +

EECS Student Climate & Incident Reporting Form

+ +

It is very important to the EECS Department that every student in the EECS community feels safe, respected and welcome. We recognize though that incidents happen, sometimes unintentionally, that run counter to that goal. +The EECS department provides a secure and anonymous Incident Reporting Form that can be used to report incidents including (but not limited to) microaggressions, discrimination, marginalizing / alienating behaviour, etc.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4e/8538194b61dac450ffea4a87de91746420b4aafc6de5298c49fd671b7de9c7 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4e/8538194b61dac450ffea4a87de91746420b4aafc6de5298c49fd671b7de9c7 new file mode 100644 index 0000000..d8a1d23 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4e/8538194b61dac450ffea4a87de91746420b4aafc6de5298c49fd671b7de9c7 @@ -0,0 +1,152 @@ +I"¨9

Resources

+ +

Below, you can find various resources to help with your understanding of the material throughout the summer.

+ +

Lab Resources

+ + + +

Content Guides and Videos

+ + +

Python Resources

+ + + +

Project Walkthroughs and Hint Videos

+ + + +

Past Exams

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
YearQuestMidterm (Without-Snap!)Midterm (With-Snap!)Final (Paper)Final (In-Lab)
Summer 2023-Exam SolutionsExam 9-11am Exam 11am-1pm Exam 3-5pm SolutionsExam Solutions ClarificationsPractice Exam Practice Exam Solutions Exam Solutions Q1 Solutions Q2 Solutions Q3
Summer 2022-Exam SolutionsExam + SolutionsExam SolutionsExam Skeleton Code + Solutions
Spring 2020Exam Solutions--Exam SolutionsExam Solutions
Fall 2019Exam SolutionsExam SolutionsExam SolutionsExam Solutions-
Summer 2019Exam SolutionsExam SolutionsExam Solutions--
Spring 2019Exam SolutionsExam SolutionsExam SolutionsExam SolutionsExam Solutions
Fall 2018Exam SolutionsExam Part 1 Solutions Part 1 Exam Part 2 Solutions Part 2Exam SolutionsExam SolutionsExam Solutions
Summer 2018-Exam SolutionsExam SolutionsExam SolutionsExam Solutions
Spring 2018Exam SolutionsExam Part 1 Solutions Part 1 Exam Part 2 Solutions Part 2Exam SolutionsExam SolutionsExam Solutions
Summer 2017-Exam Solutions-Exam Solutions-
+ +

Exam Walkthroughs

+ + +

Other

+

EECS Incident Reporting Form

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/50/862ea3365231233e4be42ac99999b9110820a8c659f50353b8ed6771f9aa17 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/50/862ea3365231233e4be42ac99999b9110820a8c659f50353b8ed6771f9aa17 new file mode 100644 index 0000000..2e32846 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/50/862ea3365231233e4be42ac99999b9110820a8c659f50353b8ed6771f9aa17 @@ -0,0 +1,2 @@ +I"(

Final Project - The Project

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/51/b52b875a8e5daece5ac73c288f107e759cad402147fc0f261de167abd8060c b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/51/b52b875a8e5daece5ac73c288f107e759cad402147fc0f261de167abd8060c new file mode 100644 index 0000000..dd197ca --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/51/b52b875a8e5daece5ac73c288f107e759cad402147fc0f261de167abd8060c @@ -0,0 +1,171 @@ +I".8

Discussion

+ +

This page will be updated with discussion Worksheets and Solutions throughout the semester. Recordings will be released periodically.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + </tr> + + + + + + </tr> + +
DiscussionTitleWorksheetSolutionsRecordings
Discussion 1Welcome to Snap! Worksheet 1Solutions 1 Recording 1
Discussion 2Number Rep + Control Structures Worksheet 2Solutions 2Recording 2
Discussion 3Domain/Range, Scoping, Lists & HOFsWorksheet 3Solutions 3Recording 3
Discussion 4HOFs + Quest ReviewWorksheet 4Solutions 4Recording 4
Discussion 5AlgorithmsWorksheet 5Solutions 5Recording 5
Discussion 6Recursion IWorksheet 6Solutions 6Recording 6
Discussion 7Recursion IIWorksheet 7Solutions 7Recording 7
Discussion 8Proj 4 Presentations---
Discussion 9Intro to PythonWorksheet 9Solutions 9Recording 9
Discussion 10List Comprehension + DictionariesWorksheet 10Solutions 10Recording 10
Discussion 11OOPWorksheet 11Solutions 11Recording 11
Discussion 12Concurrency + Python HOFsWorksheet 12Solutions 12Recording 12
Discussion 13ReviewWorksheet 13Solutions 13Recording 13
Discussion 14ReviewWorksheet 14Solutions 14Recording 14Discussion 15ReviewWorksheet 15Solutions 15N/A
+ + + + +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/53/3175039b894592811b52da891d5fcc4402027d9ce391e0f355cfa22ec006c0 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/53/3175039b894592811b52da891d5fcc4402027d9ce391e0f355cfa22ec006c0 new file mode 100644 index 0000000..92ccc93 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/53/3175039b894592811b52da891d5fcc4402027d9ce391e0f355cfa22ec006c0 @@ -0,0 +1,64 @@ +I" 

Staff

+ +

Add ‘berkeley.edu’ to the end of all emails.

+ +

Instructors

+ +
Teaching Professor Dan Garcia profile photo
+

Teaching Professor Dan Garciahe/him/his

ddgarcia@

Office Hours: TBD in SODA-777

+ +

I’m just so delighted to be teaching the course again! I co-invented BJC in 2008 with my good friend and colleague Brian Harvey, and absolutely love teaching it. I’m passionate about bringing engaging and powerful CS “big ideas” to students who normally wouldn’t be exposed to it. I am humbled by all the national attention BJC has received (see the “in the News” part of my website) and hope you find this class beautiful and joyful! When I’m not working, you can find me traveling, playing golf or board games (e.g., Monopoly Deal), or binging shows (anything Pixar or Marvel) with my family. p.s. My wife and I both went to Cal for grad school… Go Bears!

+ +
+
+ +

Head Teaching Assistants

+ +
Stacey Yoo profile photo
+

Stacey Yooshe/hercs10@berkeley.eduDSP

syoo3015@

Hello! I’m Stacey, a senior majoring in bioengineering. I took CS10 in Spring 2022 and have been involved with the team ever since. I’m thrilled to be returning as Head TA this Fall. CS10 was a great, friendly introduction to computer science at Berkeley, and it really helped me dive into the field with confidence. Outside of academics, I enjoy cooking, listening to music, and being creative. Feel free to reach out with any questions! :D

+ +
+
+ +
Victoria Phelps profile photo
+

Victoria Phelpsshe/hercs10@berkeley.eduDSP

jedi_force@

Hello everyone! I’m thrilled to be your Head TA this semester. I currently work as an intern for a software company, SAP, the company that sponsors the programming language Snap!, which we’ll be using throughout the semester. My passion lies in research, particularly in software development and computer science (CS) education. When I first took this course, I had no programming experience, but I fell in love with it and became a dedicated advocate for CS10 and Snap!.

+ +

As a non-traditional student returning to school after a four-year gap, I firmly believe that anyone can learn CS. The field is open to everyone, regardless of age, skill level, or previous experience. My key piece of advice is to embrace failure as part of the learning process. Remember, not knowing something now doesn’t mean you won’t master it soon. I’m excited to share this journey with you and help you discover the world of computer science!

+ +
+
+ +

Tutors

+ +
Aanvi Kothari profile photo
+

Aanvi Kotharishe/her

aanvi.kothari@

Hello! My name is Aanvi, I’m a junior majoring in CS. I took CS10 in Fall 2022 and it has been one of my favourite classes at Cal so far. I’m excited to be back on CS10 staff for a third semester! I genuinely enjoy solving problems, writing code and teaching. Outside of school, I find joy in golf and swimming. Hope to make you all love this class as much as I did.

+ +
+
+ +
Dream Lopez profile photo
+

Dream Lopezshe/her

dreamlopez@

Hello everyone!! I’m a senior majoring in Data Science and Public Health. I took CS10 my first semester at Berkeley and it really helped my build confidence in my coding abilities! This is going to be my 7th semester with CS10! In my free time I love to read, hike, watch movies, find cute coffee shops, and bake. I look forward to meeting everyone and help you fall in love with CS <3

+ +
+
+ +
Harry Qian profile photo
+

Harry Qianhe/him

harry.qian26@

Hi! I am a Junior majoring in Physics and a minor in EECS; I’ve been on the CS 10 staff team for a couple of semesters and I am very excited to meet you all. I’m from Rome, Italy, so if you have any questions about Italy, stop by and ask! I joined the class with ZERO experience in coding, and I left the class with enough skills to start my CS journey here at Cal. I hope to support you throughout the course!

+ + +
+
+ +
Marius Castro profile photo
+

Marius Castrohe/him

mariuscastro@

Yo! My name is Marius and I’m a senior majoring in Applied Math and Computer Science. I took CS10 Spring 2022 and have been involved with the course on staff ever since. I’m pumped to see what this semester has for all of us! I came into Berkeley with no coding experience and I remember how my roommates (who were in 61A/B at the time) screens used to look like giberish while they did hw. I had no idea what CS was so I decided just to try it out by taking CS10. The class quickly became my favorite I’ve taken so far at Berkeley as it opened up the world of programming to me in a very beginner-friendly way. I hope to lend other students a hand in finding their way into Computer Science as a whole and maybe even find a passion like I did :)

+ +
+
+ +
Raka Litanto profile photo
+

Raka Litantohe/him

jryl@

Hello! I’m Raka, a senior majoring in CS. I have been an AI and a reader before, and this is my third time being a UCS-1 for CS 10. Before coming into Berkeley, I had never coded before, but taking CS 10 opened my eyes to the wonderful world of Computer Science and really helped me for my future classes. I hope all of you can enjoy CS 10 as much as I did!

+ +
+
+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/56/066bb73fda07d710d66722c7fd767ec73781b66f3372c944678c2e6844063b b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/56/066bb73fda07d710d66722c7fd767ec73781b66f3372c944678c2e6844063b new file mode 100644 index 0000000..09e71f7 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/56/066bb73fda07d710d66722c7fd767ec73781b66f3372c944678c2e6844063b @@ -0,0 +1,2 @@ +I"

Project 6

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5e/a6b3f02a84c014c092e291eebe1bd33c7ad63ca56d3ada128f15fcb40c62e2 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5e/a6b3f02a84c014c092e291eebe1bd33c7ad63ca56d3ada128f15fcb40c62e2 new file mode 100644 index 0000000..a586da5 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5e/a6b3f02a84c014c092e291eebe1bd33c7ad63ca56d3ada128f15fcb40c62e2 @@ -0,0 +1,2 @@ +I"

Project 5

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5e/b6cf647d2c5d14a044e2d103dcef4cf0cdc872434c374debc1043092bc4746 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5e/b6cf647d2c5d14a044e2d103dcef4cf0cdc872434c374debc1043092bc4746 new file mode 100644 index 0000000..35ae2cf --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5e/b6cf647d2c5d14a044e2d103dcef4cf0cdc872434c374debc1043092bc4746 @@ -0,0 +1,2 @@ +I"

Discussion

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/61/6ded0251dad30ff5ff538b9d19b232b3135eb751698b1344b5644dd38c0b25 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/61/6ded0251dad30ff5ff538b9d19b232b3135eb751698b1344b5644dd38c0b25 new file mode 100644 index 0000000..24c55f8 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/61/6ded0251dad30ff5ff538b9d19b232b3135eb751698b1344b5644dd38c0b25 @@ -0,0 +1,14 @@ +I"Š

Weekly Calendar (Updated Each Week)

+ +

If the calendar below appears blank, make sure you’re signed in to your Berkeley email!

+ + +

To add these calendars to your Google Calendar, use (this link)

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/61/9718916d3d6a3b109e2e2c474d5ebcf07efb62f8a73970b6d8d4f5e13263e1 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/61/9718916d3d6a3b109e2e2c474d5ebcf07efb62f8a73970b6d8d4f5e13263e1 new file mode 100644 index 0000000..78d7338 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/61/9718916d3d6a3b109e2e2c474d5ebcf07efb62f8a73970b6d8d4f5e13263e1 @@ -0,0 +1,61 @@ +I"

Projects

+ +
+

This page will be updated with CS10’s project specifications (specs) and walkthroughs. Recordings, if avaiable, will also be updated here.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title + Spec LinkWalkthroughRelease DateDue Date
Project 1: Wordle™-liteProj 1 Walkthrough SlidesTuesday, 9/3Thursday, 9/12
Project 2: Spelling BeeProj 2 Walkthrough SlidesSunday, 9/15Thursday, 9/26
Project 3: 2048Proj 3 Walkthrough SlidesTuesday, 10/1Thursday, 10/10
Extended to 10/22
Project 4: Tech in Context-Thursday, 10/10Wednesday, 10/16
Project 5: Pyturis-Friday, 11/1Thursday, 11/14
Project 6: Proposals-Friday, 10/25Wednesday, 10/30
Project 6: Final Project-Monday, 11/4 (earliest)
Only start once your project has been approved
Friday, 12/6
+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/67/ca7fed6ae1db512990abe256022e9e0198419381dbbfc907fbdeef1740df0a b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/67/ca7fed6ae1db512990abe256022e9e0198419381dbbfc907fbdeef1740df0a new file mode 100644 index 0000000..7102840 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/67/ca7fed6ae1db512990abe256022e9e0198419381dbbfc907fbdeef1740df0a @@ -0,0 +1,2 @@ +I"

Pyturis

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/68/1927e34b77e4b91b1f6f305d9ede004ad0b02f7c81ff74d8f7015e1b8f9c4e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/68/1927e34b77e4b91b1f6f305d9ede004ad0b02f7c81ff74d8f7015e1b8f9c4e new file mode 100644 index 0000000..06fdbef --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/68/1927e34b77e4b91b1f6f305d9ede004ad0b02f7c81ff74d8f7015e1b8f9c4e @@ -0,0 +1,2 @@ +I"

Staff

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/6e/974038bc0016522da1ceaf346bceae6a3a31d14cc1ff3f6a3d2034db588106 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/6e/974038bc0016522da1ceaf346bceae6a3a31d14cc1ff3f6a3d2034db588106 new file mode 100644 index 0000000..569acbf --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/6e/974038bc0016522da1ceaf346bceae6a3a31d14cc1ff3f6a3d2034db588106 @@ -0,0 +1,210 @@ +I"´4

Version 3.0. Last Updated: 2024-09-15.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +

Project walkthrough guide.pdf

+ +

To begin, load this starter project

+ +
+

Any important updates or clarifications will be made here.

+
+ +

Content

+ +

I. Submission Guidelines
+II. Preface
+III. Introduction
+IV. Part 1: “letter” Block +V. Part 2: “has letter” Block
+VI. Part 3: “uppercase” Block
+VII. Part 4: “lowercase” Block
+VIII. Part 5: “has only” Block
+IX. Part 6: “pangram” Block
+X. Part 7: “solution” Block
+XI. Rubric
+XII. Feedback Form

+ +

Submission Guidelines

+ + + +

Preface

+ +

Do remember that while you may discuss general ideas with other students, sharing code with anyone but your partner would be academically dishonest.

+ +

Important: Ensure that you use the starter file we’ve linked above- do NOT create your own Snap! file for this project!

+ +

You are NOT allowed to use explicit iteration (i.e. create for loops / repeat until loops) or recursion (which you’ll learn soon) in this project. Instead, you should rely on HOFs: specifically, map, keep, and combine. You are also not allowed to import any blocks.

Also, you may NOT use the built-in lowercase or uppercase blocks shown below:

Length of text snap block with uppercase/lowercase options

You are allowed to use length of text.

+ +

Introduction

+ +

In this project, you will need to collaborate with a partner to complete seven blocks in an existing program for Spelling Bee, a popular one-player word-guessing game. The blocks range in difficulty, with the first two being relatively easy, the middle two medium, and the last three more challenging.

+ +

In the game, the computer takes about ten seconds to generate (and solve) a hexagonally-shaped word puzzle composed of seven letters, with the center one depicted in yellow and six others on the outside. A reference photo of this puzzle display can be seen below:

+ +

Example of the hexagonally-shaped puzzle, with the center one 'D', and six others'R, E, C, H, N, W'

+ +

To play the game, you need to create words using only the seven letters provided, and every word must include the middle letter to be considered valid. After typing your guess, press the “Return” (or “Enter”) key to submit it. Your guess will be added to the list of correct guesses if it meets the following criteria: it includes the middle letter, uses only the seven letters from the puzzle, is in the wordlist WORDS, and has not been guessed before.

+ +

A word that contains ALL the letters of the puzzle is called a PANGRAM and is shown in UPPERCASE. Each puzzle contains at least one pangram. In the original game, only words of four letters or more are allowed, so we already removed words of three letters or fewer from the WORDS list.

+ +

If you make a mistake, press the “Delete” (or “Backspace”) key to fix or edit your entry. To shuffle the outside letters, hit the spacebar. To see the answers at any point, press the “Option” (or “Alt”) key. To start a new puzzle, click the green “lightning bolt” button at the top right. The program is automatically set to “Turbo Mode” for faster play. If it’s off (green flag instead of lightning bolt), manually turn it back on in Settings.

+ +

We strongly encourage you to play this game on the NY Times Spelling Bee site to get a feel for it. It’s super addictive, but sadly, you can only play once a day for free. If you want to play multiple times in one sitting, use this link instead. But the best part is that we are going to build an exact replica of this in Snap! that you can play and show to your friends!

+ +

If you’re having trouble, please contact the course staff for assistance — Ed, Office Hours, and Project Parties- are all here to help you feel good about the work you’re doing, or get you unstuck!

+ +

Part 1: <Letter []> Block

+ +

First, you’ll build a predicate block (aka the “letter” block) that should report True iff (if and only if) the input is a single-character letter a-z or A-Z, and False if it is not. E.g.,

+ +

Testcases for Part 1 Block

+ +

Part 2: < [] has letter [] > Block

+ +

Next, you’ll build a predicate (aka the “has letter” block) that should report True iff the first input (a word) contains the letter. E.g.,

+ +

Testcases for Part 2 Block

+ +

For this block, you may assume that both inputs will always utilize uppercase letters.

+ +
+

Pro Tip: We found the following blocks extremely useful:
+Two Snap! Blocks, Split [] by [] and <list contains[]>

+
+ +

Part 3: (uppercase word []) Block

+ +

Next, you’ll build a reporter (aka the “uppercase” block) that should report all the letters of its input (assumed to be a-zA-Z) in uppercase. E.g.,

+ +

Testcases for Part 3 Block

+ +

Reminder: You may NOT use the built-in lowercase or uppercase blocks shown below:
+ Length of text snap block with uppercase/lowercase options

+ +

The intention is to learn how to implement these blocks yourself. You are however, allowed to use length of text.

+ +
+

Pro Tip: We found these blocks extremely helpful
+ Snap Blocks: `split [] by []`, `unicode () as letter`, `unicode of []`

+
+ +

Part 4: (lowercase word []) Block

+ +

Next, you’ll build a reporter (aka the “lowercase” block) that should report all the letters of its input (assumed to be a-z and A-Z) in lowercase. E.g.,

+ +

Testcases for Part 4 Block

+ +
+

See same reminder and Pro Tip above

+
+ +

Part 5: < [] has only these letters [] > Block

+ +

Next, you’ll build a predicate (aka the “has only” block) that should report True iff the first input word is comprised only of the letters given, and False otherwise. You may assume the letters are all unique. E.g.,

+ +

Testcases for Part 5 Block

+ +

For this block, you may assume that both inputs will always utilize uppercase letters.

+ +
+

Pro Tip: We found the following blocks extremely useful:
+Three Snap! Blocks, <list contains[]>, is [list] empty, and Split [] by []

+
+ +

Part 6: < [] is a pangram using all letters [] > Block

+ +

Next, you’ll build a predicate (aka the “pangram” block) that should report True iff the first input word uses all of the letters given, and otherwise. It’s ok if the first word contains letters not in the letters parameter, as in the fourth example. You may assume the letters are all unique. E.g.,

+ +

Testcases for Part 6 Block

+ +

For this block, you may assume that both inputs will always utilize uppercase letters.

+ +
+

Pro Tip: We found the following blocks extremely useful:
+Three Snap! Blocks, <list contains[]>, is [list] empty, and Split [] by []

+
+ +

Part 7: complete solution to puzzle () using words [] Block

+ +

Next, you’ll build a reporter (aka the “solution” block) that reports the solution to the Spelling Bee puzzle given the word list. The solution is a list of words, where each word has two properties: (1) it contains the first letter of the puzzle (how we store the “center” word), (2) it only includes the letters of the puzzle. All pangrams (words that use all the letters of the puzzle) are listed in UPPERCASE. There are no limits to the number of letters in the puzzle or the number of letters in the words in the list. For the autograder to work, the words need to stay in the same order as the original word list.

+ +

Testcases for Part 7 Block

+ +

Rubric

+

You have seven blocks to write, and they will be scored according to the following table; a perfect score would earn 25 points. Note that for a particular block, the test cases may have different weights. PrairieLearn’s autograder needs the number between 0 and 1, so we divided the total score by 25 to send to the autograder. You should continue to work on your code until all test cases pass and the score reported by says: {“score”: 25}. +If at any point you’d like to see more details about how we calculate that out-of-25 score, you can run the block we provide, which reports a nicely-formatted table (with headers) showing every test case, the expected value, the actual value, how many points it is worth, and how many points you’ve earned. The sum of all the earned points is tallied in the bottom-right cell. +Note: correct, working code should handle those test cases, but not have the test cases hardcoded into your solution; they should be able to handle any inputs according to the specifications.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BlockPointsFunction TypeInputsOutputs
letter _1Predicatestringboolean
_ has letter _1Predicatestringsboolean
uppercase word _2Reporterstringstring
lowercase word _2Reporterstringstring
_ has only these letters _5Predicatestringsboolean
_ is a pangram using all letters _6.5Predicatestringsboolean
complete solution to puzzle _ using words _7.5Reporterlist and stringstring
+ +

Feedback Form

+

Congratulations on finish your first project in CS10🥳. Please spend some time completing this feedback form. This will be worth 1 point of your project grade. Thank you!

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/7f99a7f9d44c170225ad24aba78449acc45ed46fb79bcd29900b1c4d538ed0 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/7f99a7f9d44c170225ad24aba78449acc45ed46fb79bcd29900b1c4d538ed0 new file mode 100644 index 0000000..82621be --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/77/7f99a7f9d44c170225ad24aba78449acc45ed46fb79bcd29900b1c4d538ed0 @@ -0,0 +1,2 @@ +I"

CS10 Spring 2025

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/7d/ab736818727491951918a2559fad19c4f3d0507d109736e4e64807064caedf b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/7d/ab736818727491951918a2559fad19c4f3d0507d109736e4e64807064caedf new file mode 100644 index 0000000..e1e53bb --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/7d/ab736818727491951918a2559fad19c4f3d0507d109736e4e64807064caedf @@ -0,0 +1,2 @@ +I"

Project 1

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/89/973a59a59d935550783a648545cca98d203c063b9214e38a8af4d6795a3319 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/89/973a59a59d935550783a648545cca98d203c063b9214e38a8af4d6795a3319 new file mode 100644 index 0000000..a53c3a3 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/89/973a59a59d935550783a648545cca98d203c063b9214e38a8af4d6795a3319 @@ -0,0 +1,2 @@ +I"&

Hello world!

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8a/e95d33a3a38c265dcd8c07d1f3531fef1df634346f3048342668673fc0a95c b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8a/e95d33a3a38c265dcd8c07d1f3531fef1df634346f3048342668673fc0a95c new file mode 100644 index 0000000..8c7926f --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8a/e95d33a3a38c265dcd8c07d1f3531fef1df634346f3048342668673fc0a95c @@ -0,0 +1,420 @@ +I"–M

Version 1.0. Last Updated: 2024-10-10.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ + + +
+

Any important updates or clarifications will be made here.

+
+ +

Content

+ +

I. Submission Guidelines +II. Introduction +III. Project 4 Timeline +IV. AI and Generative Tool Guidelines +V. Content Guidelines + a. Part 1: The Artifact and Documentation + b. Part 2: Group Presentation + Peer Feedback + c. Part 3: Peer Reflection/Comments +VI. Feedback Form +VII. Rubric & Grading

+ +

Submission Guidelines

+ +
    +
  1. Upload your project to the Project 4: Artifact + Documentation assignment on Gradescope
  2. +
  3. After you present, collect the peer feedback forms which you will need to upload to the Gradescope assignment: Project 4: Comments + Peer Feedback + +
  4. +
  5. Having trouble? Contact your lab TA or go to office hours (OH)!
  6. +
+ +

Introduction

+ +

This semester, you have explored how computer science and technological innovations shape society—from individual experiences to global transformations. For this project, you’ll step away from coding to select a creative media format that allows you to critically examine an intersection between technology and society. The project will consist of three parts: creation of an artifact with project documentation, live presentation, and peer reflection. This approach offers an opportunity to engage with the actions and consequences of technology in a non-traditional format.

+ +

You will select a creative medium to explore a tech-related topic of your choice. Acceptable formats include art/drawings, sculptures, videos, infographics, short films or sketches (stop motion, live action, or digital using Snap! only), collages, or dioramas. Written works like essays, songs, or poems are not permitted, nor are single photographs or single-plane AI-generated content. Additional guidelines regarding AI or generative tools are written below. If you’d like to use a different medium, you must get approval from the TAs.

+ +

The medium you select should effectively convey the societal, economic, or cultural impact of your chosen topic—whether it’s a technology, theory, program, event (past or present), or object. Previous topics have included artificial intelligence (AI), Facebook, smart farming, the internet, the TikTok algorithm, robotic teachers, and online security. Examples of accepted artifacts could look like an Infographic on AI Bias in Decision-Making, a Handmade Collage on Social Media’s Impact on Youth, or a Sculpture on Data Privacy.

+ +

If you’re unsure of a topic, consider a technological innovation that has significantly transformed the way we live, work, or interact—socially, economically, or culturally. Be sure to focus on a specific topic that allows for in-depth analysis or creative expression within the scope of the project.

+ +

We want this to be a fun and exciting project that allows you to pursue your interests. This project shouldn’t feel like a grind (we are hoping!). The expected time spent on this should not exceed five hours. Ideally, most of the time spent on the project will be doing research on the topic.

+ +

Project 4 Timeline

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PartSubmission MethodDue Date
Part 1: Artifact + DocumentationGradescopeWED 10/16 AT 11:59 PM
Part 2: PresentationIn Person in Discussion or Makeup OH (makeup times will be limited and posted on EdStem)THURS 10/17
Part 3: Peer Reflection/Comment + FeedbackGradescopeWED 10/23 11:59 PM
+ +

AI and Generative Tool Guidelines

+ + + +

Part 1: The Artifact and Documentation

+ +

The artifact should adhere to the following guidelines:

+ + +

Content

+ +

Your artifact should include details that express your technical topic in a creative and novel way. To help you do so, your artifact should answer some (but need not answer all) of the following questions, but you must select questions from each category (define the purpose, positive and negative impacts, and technical elements):

+ + + +

Project Documentation Guide (200-350* Words)

+ + + +

Submission

+ + + +

Part 2: Group Presentation + Peer Feedback

+ +

For this assignment, you will present your Artifact in small, collaborative groups during our scheduled Discussion session (Thursday 7-9 PM). This format is designed to foster a deeper exchange of ideas, encourage constructive feedback, and allow for a more intimate exploration of the societal, economic, or cultural impact of the tech-related topics we are studying.

+ +

The small group setting is intended to create a supportive environment where you can confidently showcase your creative medium, whether it be an artwork, sculpture, video, infographic, collage, or diorama. The goal of the presentations is not only to exhibit your work but to engage with your peers, offering insights into how your chosen medium effectively communicates the implications of your topic.

+ +

Presentations will be largely student led with AI/Tutor/TA supervision. You will be graded for your engagement and active participation.

+ +

You will sign-up for a time and group (rec: 4-5) that best works for you. Sign ups are filled on a first-come first-serve basis.

+ +

If you can not attend the allotted Discussion Time for any reason. You will have time in Makeup Office Hours to regain your points. Please, note we are only offering specific, limited times, and we will release more information later. Sign Ups will be released on Thursday, 10/17.

+ +

Presentation Guidelines (7 minutes)

+ + + +

Q&A Discussion Guidelines (3 minutes)

+ +

After your presentation, there will be a 3-5 minute discussion period where peers are encouraged to ask questions, share thoughts, and provide constructive feedback. This dialogue is essential for refining your understanding of both your own work and that of your peers.

+ +

Be ready to answer follow-up questions related to your project, process, and topic. This includes technical aspects, societal impacts, ethical considerations, and the use of AI tools.

+ +

Aim to facilitate dialogue by asking the audience or classmates for their thoughts or feedback on your topic. You are in charge of the Q&A, so do your best to guide the conversation.

+ +

Conclude the Q&A with a brief summary of your project’s key points or takeaways based on the discussion.

+ +

Part 3: Peer Reflection/Comments

+ + + +

Feedback Form

+ +

Congratulations on finishing your fourth project in CS10🥳

+ +

Please spend some time completing this feedback form. This will be worth 1 point of your project grade. Thank you!

+ +

Rubric & Grading

+ +

Project 4 will be graded for coherence and content based on the following rubric.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PartCriteriaPoints
Part 1: Artifact and Documentation (8 pts)  
 Submission of Artifact in the correct format on Gradescope+0.5
 Artifact is an acceptable medium to explore a single, tech-related topic.+0.5
 Artifact includes details that express technical topic of choice in a creative and novel way+3.0
 Documentation is between 200 and 350 words (450 hard max), and is clear and coherent+0.5
 Documentation explores the creative and research process on the Artifact+1.5
 Documentation highlights intended message of Artifact+1.5
 All references are properly cited and submission follows style guide+0.5
Part 2: Presentation (4 pts) (Partially graded by peers)  
 Signs up and is present at the allotted time+1.0
 Explains artifact’s purpose and impact (Peer graded)+1.0
 Facilitates and leads discussion/Q&A with peers (Peer graded)+1.0
 Provides thoughtful answers to at least 2 peer questions (Peer graded)+1.0
Part 3: Peer Reflection (3 pts)  
 Reflects on a student’s presentation (3-6 sentences). Comments are insightful and thoughtful+1.0
 Reflects on a second student’s presentation (3-6 sentences). Comments are insightful and thoughtful+1.0
Feedback Form (1 pt)  
 Complete the feedback form+1.0
+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8b/7ad4d220261e0e0a8479abf470abb240ce32d8e85815f269cecc0d80e3c9c5 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8b/7ad4d220261e0e0a8479abf470abb240ce32d8e85815f269cecc0d80e3c9c5 new file mode 100644 index 0000000..d9d455c --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8b/7ad4d220261e0e0a8479abf470abb240ce32d8e85815f269cecc0d80e3c9c5 @@ -0,0 +1,2 @@ +I"

Project 2

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8c/42c2ea363a9082740b523d1a302e6a3ad3387d3491b8ffb66da8075c6c0e39 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8c/42c2ea363a9082740b523d1a302e6a3ad3387d3491b8ffb66da8075c6c0e39 new file mode 100644 index 0000000..a1c97fb --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8c/42c2ea363a9082740b523d1a302e6a3ad3387d3491b8ffb66da8075c6c0e39 @@ -0,0 +1,2 @@ +I"

Project 3

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/98/872f726428ecaa1bf8b3ca6e4fc4dacacfd54698891d2a064fd85ed2fae14d b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/98/872f726428ecaa1bf8b3ca6e4fc4dacacfd54698891d2a064fd85ed2fae14d new file mode 100644 index 0000000..3b2f42f --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/98/872f726428ecaa1bf8b3ca6e4fc4dacacfd54698891d2a064fd85ed2fae14d @@ -0,0 +1,7 @@ +I"
    +
  1. Create a new repository based on Just the Class.
  2. +
  3. Configure a publishing source for GitHub Pages. Your course website is now live!
  4. +
  5. Update _config.yml with your course information.
  6. +
  7. Edit and create .md Markdown files to add your content.
  8. +
+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/98/c4a74d0983edd7cb82f457e44d615ee752b8454d4ff81fc445a4526a1fac93 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/98/c4a74d0983edd7cb82f457e44d615ee752b8454d4ff81fc445a4526a1fac93 new file mode 100644 index 0000000..99c8f9b --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/98/c4a74d0983edd7cb82f457e44d615ee752b8454d4ff81fc445a4526a1fac93 @@ -0,0 +1,2 @@ +I"-

Course policies and information.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9c/ca588963fc8a247e509defd9577f4f30a12db9a76ecc90807e3c86d1901da3 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9c/ca588963fc8a247e509defd9577f4f30a12db9a76ecc90807e3c86d1901da3 new file mode 100644 index 0000000..50d8fad --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9c/ca588963fc8a247e509defd9577f4f30a12db9a76ecc90807e3c86d1901da3 @@ -0,0 +1,2 @@ +I"

Course resources

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9d/0350a21c97643ed8d77c7c61acf0c7da35d4b428195bd9e567a8b2133731a2 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9d/0350a21c97643ed8d77c7c61acf0c7da35d4b428195bd9e567a8b2133731a2 new file mode 100644 index 0000000..33a7caf --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9d/0350a21c97643ed8d77c7c61acf0c7da35d4b428195bd9e567a8b2133731a2 @@ -0,0 +1,2 @@ +I"$

Final Project Proposals

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9e/c62af00fdcb7d858daae6c590112e74718cb2039b149c8ec40deb696c8fc93 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9e/c62af00fdcb7d858daae6c590112e74718cb2039b149c8ec40deb696c8fc93 new file mode 100644 index 0000000..9325c51 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/9e/c62af00fdcb7d858daae6c590112e74718cb2039b149c8ec40deb696c8fc93 @@ -0,0 +1,4 @@ +I"´

Hello everyone! I’m thrilled to be your Head TA this semester. I currently work as an intern for a software company, SAP, the company that sponsors the programming language Snap!, which we’ll be using throughout the semester. My passion lies in research, particularly in software development and computer science (CS) education. When I first took this course, I had no programming experience, but I fell in love with it and became a dedicated advocate for CS10 and Snap!.

+ +

As a non-traditional student returning to school after a four-year gap, I firmly believe that anyone can learn CS. The field is open to everyone, regardless of age, skill level, or previous experience. My key piece of advice is to embrace failure as part of the learning process. Remember, not knowing something now doesn’t mean you won’t master it soon. I’m excited to share this journey with you and help you discover the world of computer science!

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a0/472decc7426599d9dfcd996ecf6c810ee22efaeb14e7de5cd6c1cedad57f9a b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a0/472decc7426599d9dfcd996ecf6c810ee22efaeb14e7de5cd6c1cedad57f9a new file mode 100644 index 0000000..72f20f7 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a0/472decc7426599d9dfcd996ecf6c810ee22efaeb14e7de5cd6c1cedad57f9a @@ -0,0 +1,2 @@ +I"o

Hello! I’m Raka, a senior majoring in CS. I have been an AI and a reader before, and this is my third time being a UCS-1 for CS 10. Before coming into Berkeley, I had never coded before, but taking CS 10 opened my eyes to the wonderful world of Computer Science and really helped me for my future classes. I hope all of you can enjoy CS 10 as much as I did!

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a3/3a08d3eb65c66bb1ef15aac1b010c4d3d7359586eefba7a92dc1d0a5c1931a b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a3/3a08d3eb65c66bb1ef15aac1b010c4d3d7359586eefba7a92dc1d0a5c1931a new file mode 100644 index 0000000..4f896c6 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a3/3a08d3eb65c66bb1ef15aac1b010c4d3d7359586eefba7a92dc1d0a5c1931a @@ -0,0 +1,301 @@ +I"ŃN

Version 3.1. Last Updated: 2024-10-10.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +

We also recommend you complete all labs up to and including Lab 8: Boards

+ +

Project walkthrough guide.pdf

+ +

To begin, load this starter project

+ +
+

Any important updates or clarifications will be made here:

+
+ +
+
+

Due Date Extended to Tuesday, 10/22

+
+
+ +
+
+

Project 3 Party: Thursday, 10/10 from 5 - 7PM in Soda 326

+
+
+ +
+
+

Project 3 Party: Monday, 10/7 from 5 - 7PM in Moffit 145

+
+
+ +
+
+

Guide to help with Testing Blocks

+
+
+ +

Content

+ +

I. Introduction +II. Helper Blocks
+III. Suggestions
+IV. Part 1: Populating the Board
+V. Part 2: Rotating the Board
+VI. Part 3: Merging
+VII. Part 4: Ending the Game
+VIII. Part 5: Tests
+IX. Feedback Form
+X. Grading

+ +

Submission Guidelines

+ +

Please submit on Gradescope using these submission instructions, and make sure to add your partner!

+ +

Introduction

+ +

In this project, you’ll be working off some skeleton code to build 2048! If you’re unfamiliar, 2048 +is a sliding puzzle game where the goal is to combine same-valued tiles to reach the value 2048. +You can play the game at this link for free to get used to how it works. +You won’t be building the game from scratch, just filling out five blocks. All of those blocks will +be reporters, and should not update the board display — that’s handled for you in the skeleton code. +So make sure not to mutate the original board. Once you’ve completed those five block definitions, +you won’t need to change anything else about the code; it should work!

+ +

Example of the 2048 game board

+ +

In a nutshell, the game works like this:

+ + + +

The board representation in this version of 2048 is abstracted away (we call that an “abstract data type”), +but you can picture it as a table that looks like the picture on the right, containing only 0 and powers of +2 greater than or equal to 2 (e.g., 2, 4, 8, 16, etc). Do not assume that boards are always 4x4 – all the +code we give you as well as the code you write should be able to work with any size square board!

+ +

Note: Make sure to run your game in Turbo Mode for best response time results. To turn on Turbo Mode, +check the “Turbo Mode” box in the gear icon menu. The green starting flag will change to a lightning bolt +(as shown).

+ +

This project must be completed with a partner. If you’re having trouble finding one, head to the Partner-Finding +thread on Ed! Do remember that while you may discuss general ideas with students you aren’t partners with, +sharing code would be academically dishonest. If you’re having trouble, please contact the course staff for +assistance —Ed, Office hours, labs, and the project party are all here to help you feel good about the work +you’re doing! If you can’t make the times, tell us, and we’ll figure out how you can still get support. But +we won’t know when or how to help unless you let us know!

+ +

Note: You can import blocks from libraries

+ +

Helper Blocks

+ +

Diagram of the rows and columns from the board

+ +

You will not need to know how we represent a board in this game — we have provided the following nine helper blocks for you to use to interface with our board implementation. The Power of Abstraction! With this in mind, please make sure not to modify the input board in any of the blocks you write! In addition, please use these blocks, rather than coming up with your own. Also keep in mind that you generally want to abstract as much as possible, meaning you should not use global variables within blocks. We created all custom blocks (including the five you will fill out) so that any information you’ll need will be passed into the block as input.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BlockInputOutputDescription
new board sizeside length (number) - desired length of one side of the boardan empty side length x side length square boardUse this block rather than the ‘new 4x4 board with values ___…’ block from the testing lab. That block should be used only for testing, per the name of the lab
size of boardboard - a 2048 game board at some point in the gamethe length of one side of the input board–
item ofrow (number), column (number), board (a 2048 game board)the value (number) at row, column on the board–
set item ofrow (number), column (number), board (a 2048 game board), value (number) - a value to be inserted into board at row, columnnone, this is a command blockUse this block to set a particular square on the board to a particular value
copy ofboard - a 2048 game board at some point in the gamea separate board with all the same values as the input boardUse this block to build boards that need to have/start with the same values/game state as another board. Updating the copy will not update the input board
empty positions ofboard - a 2048 game board at some point in the gamea list of lists where each sublist contains the row and column of an empty position–
rotated row for, for sizerow (number), column (number), size (number) - the side length of the board you’d like to rotate withinthe row number of the resulting location of this itemThis block does not actually rotate any part of the board. It only returns the row that the input coordinates (row, column) would end up in if the board was rotated 90 degrees clockwise. Here is a visual example
rotated col for, for sizerow (number), column (number), size (number) - the side length of the board you’d like to rotate withinthe column number of the resulting location of this itemThis block does not actually rotate any part of the board. It only returns the column that the input coordinates (row, column) would end up in if the board was rotated 90 degrees clockwise. Here is a visual example
update display forboard - a 2048 game board at some point in the gamenone, this is a command blockThis block updates the stage to display the input board, and sets (game board). This will help you mainly in testing, but should not be used in your game code
+ +

We encourage you to play around with these blocks (input different values and see what the output is) to better understand what they do and how they work — you can also go into each block and look at the code. This will help you when using these blocks in the rest of the project. Just be sure not to change what is inside each of them.

+ +

Suggestions

+ +

Parts 3 and 4 will take a significant amount of your time spent on the project. We recommend managing your time to accommodate for the influx of difficulty on the latter half of project 3. A good mental checkpoint is to have part 2 done by Friday. These are merely suggestions based on the experience of students from previous semesters.

+ +

Part 1: Populating the Board

+ +

In this section of the project, you should fill out the ‘add 2 or 4 to _’ block. The value 2 should have a 75% chance of being added, and the value 4 should have a 25% chance. These values should be added to a randomly-selected empty space on the board.

+ +

Input: board - a 2048 game board with at least one empty space
+Output: a copy of board with an added value at a random location

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a new copy of the board, and should not update the existing board. Updating the existing board is done for you in the provided game code.

+ +

Hint: Stuck? Check out some of the existing blocks in Snap! How will you find where to insert the value in the board? Are there any blocks we provide that could help?

+ +

Part 2: Rotating the Board

+ +

In this part, you should fill out the ‘rotate _ clockwise’ block, which takes in a board and returns a copy of the board that is the result of rotating the input board 90 degrees clockwise. (You will lose points if you rotate anti-clockwise.)

+ +

Input: board - a 2048 game board with at least one empty space
+Output: a copy of board that has been rotated 90 degrees clockwise

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a new copy of the board, and should not update the existing board. Updating the existing board is done for you in the provided game code.

+ +

Hint: Take a look at the ‘rotated row’, ‘rotated column’, ‘size of board’, and ‘copy of’ blocks if you’re not sure how to do something! In particular, the ‘copy of’ block will let you duplicate the contents of a board and then update it separately from the original.

+ +

Part 3: Merging

+ +

In this section of the project, you’ll be filling out two blocks: ‘merge column _ of _ up’ and ‘merge up _’. It is highly recommended that you make helper blocks as part of your implementation of ‘merge column _ of _ up’. Note that you can create helper blocks by right clicking in the scripting area and selecting “make a block…”

+ +

This article breaks down the components of merging a single column, which you should mimic with your implementation. Also, make sure that you’re maintaining the abstraction provided by ‘merge column __ of __ up’ when you build ‘merge up __’ which is to say try to use ‘merge column __ of __ up’ while coding up ‘merge up __’.

+ +

‘merge column __ of __ up’ +Input: col (number, 1 is the leftmost column), board - a 2048 game board +Output: a copy of the board in which column col has been completely merged up

+ +

‘merge up’ +Input: board - a 2048 game board at some point in the game +Output: a copy of board in which all columns have been merged up

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a new version of the board, and should not update the existing board. Updating the existing board is done for you in the provided game code. +Note that we only need one block that merges upward (rather than four blocks that each merge left, right, up, down) because we have the ‘rotate clockwise’ block. If we want to merge left, for example, we can first rotate the board clockwise 90 degrees, merge up, and then rotate the board clockwise 270 degrees. The provided skeleton code implements this for you, though!

+ +

Hint: Stuck? Check out some of the existing blocks in Snap! How will you find where to insert the value in the board? Are there any blocks we provide that could help?

+ +

Part 4: Ending the Game

+ +

In this part of the project, you’ll be filling in the ‘no moves left for _?’ block, which should report False when there are still merges available on the board, and True when the board cannot be merged further. Keep in mind that the board can be full and there can still be moves available.

+ +

Input: board - a 2048 game board
+Output: whether or not the board can be merged further (Boolean)

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a Boolean, ie, True/False value signifying whether the game is over or not. +Hint: We found the “cascade” block helpful…

+ +

Part 5: Testing

+ +

An important part of learning to program is being able to test your code effectively. We’ve taken the training wheels off; in earlier projects we gave you all the tests, here we ask you to create the tests yourself. In the TESTER sprite, you will see four blocks:

+ +

Test function examples

+ +

You need to create at least two separate test cases for these four blocks, with their respective expected output. Please note, that the reporter test function requires the board to be wrapped in an additional list block. Once you are done with all your tests, to get credit from the autograder, you have to drag these four blocks into the four holes of the append block and then click that block to assign GRADED TESTS, which the Autograder will use to give you credit.

+ +

Graded tests variable

+ +

Please note that your test cases should output True, not False. This is because the goal of testing is to check that your blocks work in normal cases as well as edge cases, not to check that it fails when expected. If your block outputs False, we assume this means your block does not pass the case and is therefore faulty. When writing test cases, each test should include input and output (follow the format in the Testing lab), and you should think about a genuine input for the block that would help you test if it accomplishes the task it should do, or catches some edgecase. For example, does the merge column up block work on a column with the values [0, 0, 2, 2]? If the merge column with this input correctly outputs [4, 0, 0, 0] in that column, the test block should output True. +Check out these workbook pages which go deeper into the Test block and testing. Feel free to test your concepts in the 2048 lab section. Tests only present in your lab sprite will not be counted for project credit. The tests must be present in the “TESTER” section.

+ +

Here is guide and some examples of the testing block:

+ +

Testing Block Guide

+ +

Feedback Form

+ +

Congratulations on finishing your third project in CS10🥳Please spend some time completing this feedback form. This will be worth 1 point of your project grade. Each member of your group should submit to the form. Thank you!

+ +

Grading

+ +

You have five blocks to write, and they will be scored according to the table below; a perfect score would earn 35 points. Note that for a particular block, the test cases may have different weights. The autograder needs a score between 0 and 1, so we divide the total score by 35 to send to the autograder. You should continue to work on your code until all test cases pass

+ +

Remember that your final score on this project is the score you’ll see on Gradescope, which will be out of 35 points. +If at any point you’d like to see a more detailed about how we calculate that out-of-35 score, you can run the block we provide, which reports a nicely-formatted table (with headers) showing every test case, the expected value, and the actual value. +Note: correct, working code should handle those test cases, but not have the test cases hardcoded into your solution; they should be able to handle any inputs according to the specifications. +See grading breakdown below:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BlockType of BlockPoints per Block
add 2 or 4 to _Reporter4.67
rotate _ clockwiseReporter4.67
merge up column _ of _Reporter11.67
merge up _Reporter4.67
no moves left for _ ?Predicate4.67
TestingVariable3.65
Feedback FormN/A1
+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a8/8f081caa3bede4216ec7cb968bd6045b0c44e19af50971238a60cc272330bb b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a8/8f081caa3bede4216ec7cb968bd6045b0c44e19af50971238a60cc272330bb new file mode 100644 index 0000000..5d8e325 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/a8/8f081caa3bede4216ec7cb968bd6045b0c44e19af50971238a60cc272330bb @@ -0,0 +1,2 @@ +I"'

The weekly event calendar.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b2/e19bb7d4f7a7fdd1d31fa5b5a160c3126b780047faba8a44567d9e9d816900 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b2/e19bb7d4f7a7fdd1d31fa5b5a160c3126b780047faba8a44567d9e9d816900 new file mode 100644 index 0000000..2f513ca --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b2/e19bb7d4f7a7fdd1d31fa5b5a160c3126b780047faba8a44567d9e9d816900 @@ -0,0 +1,2 @@ +I"

Project 4

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b5/b4b0bc379fc187d45fb802e01691caab48be3b2543b37c475cc350d9b87109 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b5/b4b0bc379fc187d45fb802e01691caab48be3b2543b37c475cc350d9b87109 new file mode 100644 index 0000000..611f1e9 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b5/b4b0bc379fc187d45fb802e01691caab48be3b2543b37c475cc350d9b87109 @@ -0,0 +1,2 @@ +I"

Ants vs. Some Bees

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/1916351d2b90ca15578eaae823301e2cb0198ff56efcbde2b45c6fff9ead80 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/1916351d2b90ca15578eaae823301e2cb0198ff56efcbde2b45c6fff9ead80 new file mode 100644 index 0000000..3bb6257 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/1916351d2b90ca15578eaae823301e2cb0198ff56efcbde2b45c6fff9ead80 @@ -0,0 +1,2 @@ +I"{

Hello! My name is Aanvi, I’m a junior majoring in CS. I took CS10 in Fall 2022 and it has been one of my favourite classes at Cal so far. I’m excited to be back on CS10 staff for a third semester! I genuinely enjoy solving problems, writing code and teaching. Outside of school, I find joy in golf and swimming. Hope to make you all love this class as much as I did.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/2c3c02acb9260cd220b623ff58028aa5782464b537888125618f527174772e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/2c3c02acb9260cd220b623ff58028aa5782464b537888125618f527174772e new file mode 100644 index 0000000..5c92ffa --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/2c3c02acb9260cd220b623ff58028aa5782464b537888125618f527174772e @@ -0,0 +1,326 @@ +I"eX

Version 1.0. Last Updated: 2024-11-01.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ + + +
+

Project 5 will be submitted on PrairieLearn not Gradescope

+
+ +

Starter File and Submission Link

+ +

Content

+ +

I. Submission Guidelines
+II. Intoruction
+III. Part 0: Set Up
+IV. Part 1: Board
+V. Part 2: Pytromino
+VI. Rubrics, Grading and Submission
+VII. Appendix: Pyturis Game Rules

+ +

Submission Guidelines

+

To run the PrairieLearn autograder, you’ll need to submit models.py and board.py to the assignment titled Pyturis on PrairieLearn. You can either submit these filed individually or submit the entire project folder to the PL assignment, as irrelevant files will be filtered and not processed automatically.

+ +

Introduction

+ +

Brief

+ +

Introduction Pyturis

+ +

In this project, you’ll code the game Tetris in Python, with the Turtle library rendering the graphical user interface (GUI). Python + Turtle + Tetris = Pyturis! This game involves fitting blocks called “pytrominoes’’ together to fill and clear horizontal lines. +When you’ve correctly implemented all the required functions, you’ll be able to play Pyturis on a screen that looks like the one to the right.

+ +

Preliminaries

+ +

You’ll need to have watched the Python lectures to complete this project. We also highly recommend completing Lab 13: Intro to Python before starting this project to get acquainted with Python and a text editor. Lab 14: Lists + Mutability and Lab 15: Data Structures in Python may help your understanding of how to use lists in Python, and Lab 16: OOP in Python offers a helpful tutorial with object-oriented programming (OOP) in Python, which is the basis of this project.

+ +

**We require you to complete this project with a partner. **

+ +

Goal

+ +

The goal of this project is to provide an opportunity for practicing working with object-oriented programming (OOP) in Python by building a practical program with a structure that mimics real-world projects. In this project, you’ll:

+ + +

TODO

+ +

All of the files you’ll need to implement are marked in the files with TODO: your solution here, which you can search for with CTRL+F when you open the starter code in your preferred text editor. You can play a few games of Tetris here, or read this additional section of the spec to become familiar with the game rules. If you’re writing more than 10 lines of code for any function, we recommend you consider other ways to achieve what you’re trying to do, or take a break and head to OH for assistance!

+ +

Part 0: Set Up

+

There are two things you’ll need to set up before you can begin working on the project: the version of Python you’re using and the starter code.

+ +

Python Version

+

To make sure your Python has all the expected functionality, you’ll need to be using Python 3.11. +Check the version of Python that your computer has running by pasting the following line of code into your terminal. +For Windows:

+
py --version
+
+

For Mac:

+
python3 --version
+
+

An example of the result from executing the code above should look like: +(For Windows)

+
PS C:\Users\Oski> py --version
+Python 3.11.x
+
+

(For Mac)

+
oski@Oski-MacBook-Air ~ % python3 --version
+Python 3.11.x
+
+ +

If your version number is smaller than 3.11 (starts with 3.9 or something smaller), check out this nice How to update python page or go to OH or lab for help upgrading your Python version.

+ +

The Starter Code

+ +

To mimic the majority of real-world coding projects, for this project, you’ll be working with an existing codebase, where some functions and classes have already been defined for you. To begin, download the starter ZIP file here!

+ +

There are several files in the ZIP file, but you’ll only be editing models.py and board.py. If you’re curious, you can open and read the other files, but that isn’t necessary to complete the project. Do not edit any other files. If you think you have by accident, go to OH for help! +The starter code also contains a local grader that you can use to run some provided sanity-check tests on your code (instructions are in the relevant sections). These local tests are a good barometer for how your implementation is doing, but there are additional randomized tests in the PrairieLearn autograder we expect you to pass to get 100%. Keep in mind that you’ll still need to pass the tests on the PrairieLearn autograder for credit.

+ +

Note: Do make sure that you’re not modifying function signature (how many/what types of arguments a function takes in, the name of a function, how many/what types of arguments a function outputs) as this could cause trouble when running the PL autograder. +Nice work! Now you’re ready to start coding.

+ +

Part 1: Board

+ +

Brief

+ +

In Pyturis, the board is stored as a 1D list in row-major order. +Row-major order stores values in the same row of a matrix consecutively and concatenates rows into a single list starting from the top.

+ +

Board Setup

+ +

The relationship between the coordinates of an item in the board — notated as (x, y) — and the index of the corresponding item in the row-major order list is represented by the following equation, and illustrated in the above image.

+ +
index = (y * num_cols) + x
+
+ +

Attributes

+

The Board class is located in the board.py file. As with the Holder class, there is already a constructor method provided, which contains a few useful attributes.

+ + +

TODOs

+

You’ll need to fill out three methods in board.py:

+ + +

Hints

+ + +

Local Tests

+ +

To check how your implementation is doing, you can run the local tests in the project directory with the following command. The code below tests all your work in board.py. To test each individual question, replace the Board in the command below with Q1, Q2, or Q3. +If there is no output in the terminal, that means your tests are PASSING! +For Windows:

+ +
py grader.py Board
+
+ +

For Mac:

+
python3 grader.py Board
+
+ +

Part 2: The Pytromino

+ +

Brief

+ +

In Pyturis, pytrominoes are the name for the pieces that fall from the top of the board. Each pytromino is represented as a single shape made of four blocks. In addition to absolute coordinates that represent where the pytromino is on the board, each block in the pytromino has a relative coordinate, to indicate its position within the pytromino. +The relative coordinates are calculated according to where the block is relative to the center of rotation for that pytromino.

+ +

Pytromino Setup

+ +

Attributes

+

The Pytromino class is located in the models.py file. As with the Board class, there is already a constructor method provided, which contains a few useful attributes:

+ + +

TODOs

+

You’ll need to fill out four methods in models.py. We recommended (but do not require) that you use list comprehensions in your solution (when possible).

+ + +

Validate & Apply

+ +

You’ll also need to fill out validated_apply_non_rot. However, you’ll need to have completed ALL other methods first. A validated apply means applying some transformation function (in our case, fn) to some input only if the output of that transformation function passes some validator check. If the output doesn’t pass the check, the input is left untransformed.

+ + + +

In English, we have a Pytromino (consisting of four squares on the screen) and a fn() that wants to move it somewhere. The validator is going to check whether, as a result of that move, all the squares of the Pytromino are still on the screen (i.e., pass the validator). If all are, then great, return a Pytromino that is the result of the fn() move (remember BOTH the center of the Pytromino and all its squares need to be moved). Otherwise, don’t make the move and return a Pytromino without the fn() move applied.

+ +

arguments:

+ + +

Local Tests

+ +

To check how your implementation is doing, You can run the local tests in the project directory with the following command. The code below tests all your work in models.py. To test each individual question, replace the Pytromino in the command below with Q6 through Q10. +If there is no output in the terminal, that means your tests are PASSING!

+ +

Please make sure you are in the correct folder when you do your test. That is you are in FA22-Pyturis-Starter (if name unchanged) before running the doctests.

+ +

For Windows:

+
py grader.py Pytromino
+
+ +

For Mac:

+
python3 grader.py Pytromino
+
+ +

Running the GUI

+ +

Once you’ve finished all parts, you’re done! Nice work! You can now play the game of Pyturis you’ve coded, by running the following command inside the project directory: +For Windows:

+ +
py __main__.py
+
+ +

For Mac:

+
python3 __main__.py
+
+ +

Rubrics, Grading and Submission

+ +

This rubric gives an overview of the points that passing tests in the PrairieLearn autograder is worth, relative to each function you have to fill out. This project is autograded, not manually graded, so what you see on PL when the autograder stops running is what your score is.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rubrics
Part 1: The Board (15)
get_board_item(board, x, y)4
set_board_item(board, x, y, item)5
valid_coordinate(board, coordinate)5
get_row(board, y))5
check_row_full(board, y)5
Part 2: The Pytromino (15)
rotate_block_90_cw(pytromino, pos)5
filter_blocks_pos(pytromino, fn)5
shift_down_fn(pos, steps)5
shift_left_fn(pos, steps)5
validated_apply_non_rot(self, fn, validator)5
Feeback Form (1)
+ +

Submitting to PrairieLearn

+

Before you submit, it’s a good idea to run the local sanity-check test cases again. You can do the whole batch at once using: +for Windows:

+
py grader.py
+
+

for Mac:

+
python3 grader.py
+
+

Do keep in mind that the local tests aren’t representative of all the test cases that will be checked on PrairieLearn. The PrairieLearn autograder is available on the assignment on PrairieLearn, and will be announced over Ed, and you can submit to it an unlimited number of times to see how your project is doing.

+ +

To run the PrairieLearn autograder, you’ll need to submit models.py and board.py to the assignment on PrairieLearn. You can either submit these files individually or submit the entire project folder to the PL assignment, as irrelevant files will be filtered and not processed automatically.

+ +

Both you and your partner must submit the project individually into PrairieLearn.

+ +

The code between you and your partner can be the same. Once you’ve submitted, both of you will indicate each other as partners in the Project 5 Feedback Form +A reminder that the project feedback form is worth 1 point of your project grade.

+ +

Appendix: Pyturis Game Rules

+ +

Below are the rules for Pyturis:

+ +

The game starts with a main menu. Press (s) to start the game.

+ +

You can change different difficulty levels by pressing (d) from the main menu, then press (1), (2), (3), (4), corresponding to Easy, Medium, Hard, and Expert, to select a specific level, and press (f) to confirm and return to the main menu. Defaulted to medium.

+ +

The game features acceleration, which, if set to “ON”, will make pytromino descend faster and faster in a game. You can toggle acceleration on/off by pressing (a) in the main menu. Defaulted to OFF.

+ +

You can press (t) from the main menu to view tutorials, which is basically a concise version of the rules here. To quit the game, press (q) from the main menu.

+ +

The game starts with an empty board. Different pieces (called “pytrominoes”) will descend one by one from the top.

+ +

As a pytromino descends, the player will be able to rotate and move it using the arrow keys. +-To rotate a piece 90 degrees clockwise, press the (up) arrow key. +-To move a piece left and right, press the (left) and (right) arrow keys respectively. +-To move a piece down faster, press the (down) arrow key. +-To “hard drop” a piece, press the (space) key.

+ +

On the right-hand side of the screen, the player will be able to see a preview of the upcoming pytrominoes. To put off using the current pytromino for the one coming up next, a player can put it “on hold” by pressing the (c) key. To exchange the current pytromino with the one that’s held, press (c) again. A player can only “hold” once per pytromino.

+ +

A pytromino will stop moving when it either hits the bottom of the board or comes to rest on top of another pytromino. If the placement of the pytromino results in the formation of a continuous horizontal line, this line will disappear. A player’s score increases based on the number of lines they clear, and number of lines they move the pytromino down.

+ +

The game ends when a pytromino hits the top of the board and no more lines can be cleared; you can not “win” a game in Pyturis. +When a game ends, press (b) to return to the main menu.

+ +

At the beginning of the game, the holder is empty. The first time (c) is pressed, the pytromino will be stored in the holder, and the next pytromino will be dropped from the top. Importantly, each pytromino can only be swapped once in its lifetime; in other words, for each pytromino, only the first time (c) is pressed, does anything happen. The holder is meant to “hold” ONE item at a time.

+ +

When the holder is not empty, and a new pytromino is in the center grid, you can press c and the pytromino in the holder will be swapped with the pytromino currently in the center grid. Different from some of the Tetris implementations, Pyturis will not start dropping the swapped pytromino from the top of the center grid, instead, it will start dropping from where the current pytromino is (to make the game a little harder). As a result, if the swap is not possible because the swapping pytromino cannot fit where the current pytromino is, the swap will not happen.

+ +

When you are done, submit your file to PrairieLearn. You only need to upload the following files:

+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bb/7b9a4dd4e8a27d5142c656c80299ee6fc95a2bff84138ff6be076e61fc6cb1 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bb/7b9a4dd4e8a27d5142c656c80299ee6fc95a2bff84138ff6be076e61fc6cb1 new file mode 100644 index 0000000..3ec1aa5 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bb/7b9a4dd4e8a27d5142c656c80299ee6fc95a2bff84138ff6be076e61fc6cb1 @@ -0,0 +1,2 @@ +I"$

A list of all readings.

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bf/a0ec8bdf2946547879d50a68687ea32e2fa628db187357415858b633d194d9 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bf/a0ec8bdf2946547879d50a68687ea32e2fa628db187357415858b633d194d9 new file mode 100644 index 0000000..a63f841 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bf/a0ec8bdf2946547879d50a68687ea32e2fa628db187357415858b633d194d9 @@ -0,0 +1,2 @@ +I"

2048

+:EF \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/c2/0d8c0895780e46d63800f4f5c87df98ae9ad05315e0bc27c60c216f5c50cae b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/c2/0d8c0895780e46d63800f4f5c87df98ae9ad05315e0bc27c60c216f5c50cae new file mode 100644 index 0000000..3251fdd --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/c2/0d8c0895780e46d63800f4f5c87df98ae9ad05315e0bc27c60c216f5c50cae @@ -0,0 +1,349 @@ +I"&=

Version 1.0. Last Updated: 2024-11-05.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ + + +
+

There are three required components for the project:

+
+

The project / code itself +README / documentation on your project +Video of your group interacting with your project

+
+
+ +
+

Project 6 Parties (both during lab from 5 to 9PM in Moffit-145)

+
+

Monday, November 25th +Monday, December 2nd

+
+
+ +

Content

+ +

I. Recommended Timeline

+ +

II. Introduction

+ +

III. Technical Requirements

+ +

IV. Style Requirements

+ +

V. README Requirements

+ +

VI. Video Requirements

+ +

VII. Submission Guidelines

+ +

VIII. Rubric & Grading

+ +

IX: Additional Resources

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Group w/ 2 FeaturesGroup w/ 3 Features
Feature 1: 11/17Feature 1: 11/14
Feature 2: 11/28Feature 2: 11/21
Full Project Submission Ready: 12/4Feature 3:11/28
README and Submission: By 12/6Full Project Submission Ready: 12/4
 README and Submission: By 12/6
+ +

Introduction

+ +

For your final project, you’ll be turning in both code and a README. The README, which is a document that describes your project and its features, is meant to be an assignment where you’ll write up documentation to practice explaining your work to someone else. This project is a chance for you to implement an idea driven by your own interest!

+ +

Technical Requirements

+ +

There are certain technical and style requirements that we want you to be able to demonstrate in the implementation of your final project, regardless of what kind of project you’re doing, which are listed below. For some of the rubric items, you can also mix and match (see rubric for more details). Here is a list of some of the technical requirements you must include:

+ + + +

Style Requirements

+ +

It’s best to keep up good style (commenting, specific variable names, non-repetitive code) as you work your way through implementing a project, but that doesn’t always happen. This is a list of what style markers you should aim for as you’re coding, but we also recommend that you do a final sweep for these before you submit!

+ + +

README Requirements

+ +

Your README is meant to serve as a guide to your project, and will be used by the readers as a reference for grading to ensure that you’ve achieved all of the requirements. Instructions for the general sections of the README are included in the template. An additional optional section, the Bug Writeup, is explained in detail below.

+ +

The template (including instructions) for the final project README can be found here. Please make a copy of the Google Doc to work on, and make sure to submit it as a PDF.

+ +

[Optional] Bug Writeup: Sometimes, despite your best efforts, the project deadline rolls around and you’ve still got a bug big enough that one or more of your features isn’t working correctly. This happens in industry as well — think about app updates you’ve downloaded!

+ +

Not to fret, you can earn back up to 75% of the points originally lost for a non-functional feature with a thorough write-up. (Points given will depend on the size of the bug; this is meant to limit the points penalty for not implementing a bug-free project feature.)

+ +

Here’s an example of what we’re looking for in a bug writeup, based on a function you wrote for the OOP lab.

+ +

Video Requirements

+

Your video is meant to be a supplement to your README, and will be used to make sure that your submission is graded fairly. Please demonstrate exactly how to run your project (especially if you are using Python), the controls, and each of the features. If you are completing a Bug write-up, please demonstrate the bug(s) that you are explaining in your README in order to receive points back. Your video must be under 3 minutes in order to receive full credit.

+ +

You may either submit your video via Google Drive or YouTube. If you are submitting through YouTube please create an unlisted video. The Teaching Assistants will not be grading the projects. If you are submitting through Google Drive please make sure to share your video with the Tutors from the course website.

+ +

Additionally, include the link to your shared video in your README. If we do not have access to your video you may not get credit for this portion of the assignment.

+ +

Final Project Demo Examples:

+ +

Python

+ +

Snap!

+ +

Submission Guidelines

+ +

You should submit two things to the Gradescope final project assignment:

+ + +

Snap! projects:

+ + +

Python projects:

+ + +

If you run into any issues submitting, go to a lab or office hours or make a private post on Ed

+ +

Rubric & Grading

+ +

Your project will be graded for style and technical correctness according to the following rubric. After you get your grades back, you can submit regrade requests via Gradescope (if you feel we missed something in your original file submission).

+ +

Please don’t forget to add your partner(s) to the submissions! How to add a partner to Gradescope.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
README(10 pts)
+2README contains features description
+2README contains complexity justification
+2README contains variable justification
+2README contains blocks/functions table
+2README or code comments describe program controls
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Features(15 pts)
+7.5 / featureGroups of 1-2, who implemented two (2) features
-7.5 / featureIf the feature implemented was not approved by TA (for groups implementing 2 features).
+5 / featureGroups of 2-3, who implemented three (3) features
-5 / featureIf the feature implemented was not approved by TA (for groups implementing 3 features).
-3 / bugFor each major bug (project-breaking/crashing)
-1 / bugFor each minor bug (errors only on specific input or subpart of feature)
+2 / bugOptional Bug writeup for a major bug (see README)
+1 / bugOptional Bug writeup for a minor bug (see README)
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Technical Requirements(15 pts)
+4Req 1: Custom function
+4Req 2: Custom function
+3.5Req 3: Non-trivial list
+3.5Req 4: 1 or more script or local variable(s)
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Style Requirements(5 pts)
+2Useful and coherent comments
-1Comments are disorganized / incoherent but present
+2No repetitive code / good use of helper blocks or functions
+1Clear and useful variable and block names
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Project Demo Video(5 pts)
+2Video contains how to run the project
+1.5Video contains how to use program controls
+1.5Video contains demonstration for each feature
-1Video is longer than 3 minutes
+ +

Appendix I: Additional Resources

+ + +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/c5/d04f180a17d3b04e544c5c8b0dcd2ab770f6274e6e67b38ed73128963cb0b6 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/c5/d04f180a17d3b04e544c5c8b0dcd2ab770f6274e6e67b38ed73128963cb0b6 new file mode 100644 index 0000000..3ed3e95 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/c5/d04f180a17d3b04e544c5c8b0dcd2ab770f6274e6e67b38ed73128963cb0b6 @@ -0,0 +1,2 @@ +I"

Wordle™-lite

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/cb/99c93ca4de98746909df75fa8be03bcd35f9d7c98fa10529c7fec420ce441f b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/cb/99c93ca4de98746909df75fa8be03bcd35f9d7c98fa10529c7fec420ce441f new file mode 100644 index 0000000..94bc817 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/cb/99c93ca4de98746909df75fa8be03bcd35f9d7c98fa10529c7fec420ce441f @@ -0,0 +1,4 @@ +I"â

Office Hours: TBD in SODA-777

+ +

I’m just so delighted to be teaching the course again! I co-invented BJC in 2008 with my good friend and colleague Brian Harvey, and absolutely love teaching it. I’m passionate about bringing engaging and powerful CS “big ideas” to students who normally wouldn’t be exposed to it. I am humbled by all the national attention BJC has received (see the “in the News” part of my website) and hope you find this class beautiful and joyful! When I’m not working, you can find me traveling, playing golf or board games (e.g., Monopoly Deal), or binging shows (anything Pixar or Marvel) with my family. p.s. My wife and I both went to Cal for grad school… Go Bears!

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/cc/d4ceb6c58a6c89902aec2cf4c927baa602d785170cb7ea3c454b5cab99229d b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/cc/d4ceb6c58a6c89902aec2cf4c927baa602d785170cb7ea3c454b5cab99229d new file mode 100644 index 0000000..848885e --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/cc/d4ceb6c58a6c89902aec2cf4c927baa602d785170cb7ea3c454b5cab99229d @@ -0,0 +1,2 @@ +I"

Spelling Bee

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d1/81843c9a23c1f1343b91fb1667544cb41c64e70ec65e2f39cd2efc165c2279 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d1/81843c9a23c1f1343b91fb1667544cb41c64e70ec65e2f39cd2efc165c2279 new file mode 100644 index 0000000..fb023c9 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d1/81843c9a23c1f1343b91fb1667544cb41c64e70ec65e2f39cd2efc165c2279 @@ -0,0 +1,2 @@ +I"

Labs

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d2/d9658b127c1b4ebf39e64efabd841f57f7ae10fc83e2fa7e0fef19aa4b43d2 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d2/d9658b127c1b4ebf39e64efabd841f57f7ae10fc83e2fa7e0fef19aa4b43d2 new file mode 100644 index 0000000..3f79467 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d2/d9658b127c1b4ebf39e64efabd841f57f7ae10fc83e2fa7e0fef19aa4b43d2 @@ -0,0 +1,168 @@ +I"Ý

Readings

+ +

Readings will be discussed and due at the beginning of Discussion section every Thursday. Some of the ‘readings’ are videos, articles, journals, etc.

+ +

Week 2 Reading

+ + + +

Week 3 Reading

+ + + +

Week 4 Reading

+ + + +

Week 5 Reading

+ + + +

Week 6 Reading

+ + + +

Week 7 Reading

+ + + +

Week 8 Reading

+ + +

Week 9 Reading

+ + + +

Week 10 Reading

+ + + +

Week 11 Reading

+ + + +

Week 12 Reading

+ + + + +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/d0a30b517e3beab07609d7e54c378db5e15066f22280af453f587f7eec7474 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/d0a30b517e3beab07609d7e54c378db5e15066f22280af453f587f7eec7474 new file mode 100644 index 0000000..df60b11 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d5/d0a30b517e3beab07609d7e54c378db5e15066f22280af453f587f7eec7474 @@ -0,0 +1,2 @@ +I"

Calendar

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d9/4c43c52bf9fb85c53644d7953239d24c83832134299b4b479edef92a94a922 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d9/4c43c52bf9fb85c53644d7953239d24c83832134299b4b479edef92a94a922 new file mode 100644 index 0000000..a162c7d --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/d9/4c43c52bf9fb85c53644d7953239d24c83832134299b4b479edef92a94a922 @@ -0,0 +1,104 @@ +I"Ý

Labs

+ +

Lab Slides: Folder or can be accessed using https://tinyurl.com/cs10-labs

+ +
+

Labs are an opportunity for you to apply what you’ve learned in lecture in code (and other forms) All labs have a conceptual and a coding component. All labs assignments must be uploaded and autograded using Gradescope; the Gradescope link can be found on the worksheet.

+
+ +
+

The worksheeks linked below are high-level overviews and can be seen as a set of instructions for lab. Each worksheet lists all the required blocks, functions, or tasks for a particular lab. The worksheets also contain some of the test cases used to grade the lab.

+
+ +
+

The workbook, which differs from the worksheet, is used as a step-by-step guide to complete each lab. Lab worksheets will be released at 5:00 PM on the lab day.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabsSubmission Deadline
Lab 1: Welcome to Snap!WED 9/04
Lab 2: Build Your Own BlockMON 9/09
Lab 3: Conditionals, Reporters, TestingWED 9/11
Lab 4. Lists + HOFsMON 9/16
Lab 5. AlgorithmsWED 9/18
Lab 6. Algorithmic ComplexityMON 9/23
Lab 7.Testing + Proj 3WED 9/25
Lab 8. BoardsWED 10/2
Lab 9. Trees + RecursionWED 10/9
Lab 10. Linear RecursionMON 10/14
Lab 11: HOFs and Functions as DataMON 10/21
Lab 12: Welcome to PythonWED 10/23
Lab 13: Data Structures MON 10/28
Lab 14: Linear Recursion WED 10/30
Lab 15: Tree Recursion MON 11/4
Lab 16: Object Oriented Programming WED 11/6
Lab 17: Text ProcessingWED 11/13
Lab 18: Concurrency and ParallelismMON 11/18
Lab 19: Data ScienceWED 11/25
+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e2/99dd0d28758618dc9daa101238046949141df741e787bf7b8d523ae870eea8 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e2/99dd0d28758618dc9daa101238046949141df741e787bf7b8d523ae870eea8 new file mode 100644 index 0000000..0e05945 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e2/99dd0d28758618dc9daa101238046949141df741e787bf7b8d523ae870eea8 @@ -0,0 +1,2 @@ +I"

Tech in Context

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e2/aeb360fa73c537f4f48e8710de0196e20f1cdae56b38b061baa89700947d3f b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e2/aeb360fa73c537f4f48e8710de0196e20f1cdae56b38b061baa89700947d3f new file mode 100644 index 0000000..04a8411 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e2/aeb360fa73c537f4f48e8710de0196e20f1cdae56b38b061baa89700947d3f @@ -0,0 +1,42 @@ +I"?

Announcements

+ +

Announcements are stored in the _announcements directory and rendered according to the layout file, _layouts/announcement.html.

+ +
+

Week 1 Announcement

+ + + Apr 8 + · + + + 0 min read + +
+
    +
  1. Create a new repository based on Just the Class.
  2. +
  3. Configure a publishing source for GitHub Pages. Your course website is now live!
  4. +
  5. Update _config.yml with your course information.
  6. +
  7. Edit and create .md Markdown files to add your content.
  8. +
+ +
+
+ +
+

Week 0 Announcement

+ + + Apr 1 + · + + + 0 min read + +
+

Hello world!

+ +
+
+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/a472c3735079af91748fa800815b8efe6a148953f59f6c615504fede0c14e7 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/a472c3735079af91748fa800815b8efe6a148953f59f6c615504fede0c14e7 new file mode 100644 index 0000000..bee108e --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/a472c3735079af91748fa800815b8efe6a148953f59f6c615504fede0c14e7 @@ -0,0 +1,2 @@ +I"Ž

Hello everyone!! I’m a senior majoring in Data Science and Public Health. I took CS10 my first semester at Berkeley and it really helped my build confidence in my coding abilities! This is going to be my 7th semester with CS10! In my free time I love to read, hike, watch movies, find cute coffee shops, and bake. I look forward to meeting everyone and help you fall in love with CS <3

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 new file mode 100644 index 0000000..80ef94b --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 @@ -0,0 +1,2 @@ +I" +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e8/9b30aa1dc30a6ad8c34610689bede83b3ef645a24c3a84a0990826687fb735 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e8/9b30aa1dc30a6ad8c34610689bede83b3ef645a24c3a84a0990826687fb735 new file mode 100644 index 0000000..f1131c1 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e8/9b30aa1dc30a6ad8c34610689bede83b3ef645a24c3a84a0990826687fb735 @@ -0,0 +1,2 @@ +I"

Resources

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e9/4f1fb2ba77f04dadab8c985f586fcbde85b323125933488c91d309e68a1690 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e9/4f1fb2ba77f04dadab8c985f586fcbde85b323125933488c91d309e68a1690 new file mode 100644 index 0000000..6894bca --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e9/4f1fb2ba77f04dadab8c985f586fcbde85b323125933488c91d309e68a1690 @@ -0,0 +1,230 @@ +I"ÍC

Version 1.0. Last Updated: 2024-10-25.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ + + +

Content

+ +

I. Important logistics

+ +

II. Introduction

+ +

III. Complexity Guidelines

+ +

IV. Required Features

+ +

V. Proposal Contents

+ +

VI. Submission Guidelines

+ +

VII. Proposal Review: What to Expect

+ +

Important logistics

+ + + +

Introduction

+ +

For the final project, you’ll be building a project that you envision in either Snap! or Python, completely from scratch (how cool is that!) First, however, you’ll need to submit a project proposal that will be reviewed by a staff member to ensure that your project won’t be too easy or too complex. The proposal should come to about 1-2 pages, single-spaced (before you transfer the information to Gradescope). An example is provided below. +This proposal is meant to be just an ideas-focused starting point — the spec for the technical requirements of the final project can be found here, and you should reference that as you work with a staff member to ensure that your project idea will meet all requirements.

+ +

Please read through this entire spec before writing your proposal. Keep in mind that the project proposal is a REQUIRED element of the final project, and you will receive a 0 on this part of the project if you do not submit your proposal and meet with a staff member for feedback.

+ +

Complexity Guidelines

+ +

Complexity, for your project, basically means “how difficult is it to implement?” and is used as a measurement to ensure that final projects fit a happy medium of not too hard and not too simple, when taking into account both how much you’ve learned and how much time you have. +If your project idea relies heavily on the following, we recommend you consider alternate projects, or try a suggested workaround:

+ + +

Don’t be worried if you really like a project idea but think it may be too complex, or not complex enough — that’s the purpose of having a proposal and proposal review process, so you can work with a TA to get your project complexity into the right range!

+ +

When considering what your project is, and how you plan to implement it, see if you can figure out a solution or a structure for a solution first, before defaulting to what you’ve seen done before! A few gauges for the complexity of the kinds of solutions we’re looking for are: coming up with logic to check for four-in-a-row in Connect 4 or recreating Flappy Bird in Snap!

+ +

Of course, there’s a range of project complexity that falls into the “accepted proposal” range. Here are a few examples.

+ + + +

Other projects that fit complexity requirements that students have done in the past include: Frogger, Checkers, Flappy Bird, Snake, Chutes & Ladders, various puzzle games, various board games, data science analysis, Battleship, and chatbots.

+ +

Technical Requirements

+ +

There are certain technical and style requirements that we want you to be able to demonstrate in the implementation of your final project, regardless of what kind of project you’re doing, which are listed below. For some of the rubric items, you can also mix and match (see rubric for more details). Here is a list of some of the technical requirements you must include:

+ + + +

Required Features

+ +

On top of the technical requirement your project must have required features. Here is a list of approved features. Your 2-3 features MUST be from the following list. If you are proposing to have a feature that does not fit within the guidelines below, you will need to discuss it with your TA, but it is unlikely to be approved. If you use two of the same features they must be distinct and have unique properties.

+ + + +

Proposal Contents

+ +

So now that you’ve got a project idea in mind, it’s time to write about it! The questions you should answer in your project proposal are below. We recommend you draft your answers out on a Google Doc or Word document before submitting them into Gradescope.

+ + + +

Here is an example proposal; it should give a sense of how much detail we want you to go into on the proposal. Feel free to make a copy.

+ +

Submission Guidelines

+ +

By Sunday, October 28th 11:59pm PST deadline, you and your partner(s) will submit your project proposal as a group on Gradescope. There is 1 assignment, and you should mention the date and time of the slot you signed up for in Question 2 of the assignment.

+ +

The assignment has the proposal format in it, so your group will need to fill out all of the boxes with your answers to the questions listed in the previous section! Only one person from the group needs to submit. After you submit, please don’t forget to add your partner(s) to the submissions!

+ +

How to add partner to Gradescope

+ +

Your project proposal review will take place during the time slot your group signs up for. These slots are during the lab. You need to ensure that you can show up for the time slot you signed up for.

+ +

Proposal Review: What to Expect

+ +

You will explain your project and a staff member will review your project proposal, and either approve or disapprove it. Keep in mind that even if your initial proposal is disapproved, that’s only an indication that that specific version of the project might have been too complex or not complex enough! Your TA/tutor will work with you during the proposal review session to figure out a fix or adjustment to your project idea or suggest other ideas if necessary.

+ +

Regardless of the status of your project proposal (whether it’s unfinished or you’ve changed your mind), you must attend the project proposal review meeting with a TA/tutor. If you are able, please try to attend the lab/OH of the TA/tutor you have your proposal reviewed for the duration of the final project.

+ +

If your initial project proposal is not approved:

+ + + +

If your initial project proposal is approved:

+ + + +

As you begin to code, you may feel the need to make adjustments to your project and features (often because of time constraints or unexpected complexity). This is perfectly okay! You don’t have to run the changes by your project TA/tutor to start implementing them, but we do recommend that you check in with any adjustments to ensure that you are still within complexity guidelines.

+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e9/d7d7f9ea23853f567258406a53c850bca01ae067aef3d38d69a903edad789e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e9/d7d7f9ea23853f567258406a53c850bca01ae067aef3d38d69a903edad789e new file mode 100644 index 0000000..a25d7ec --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e9/d7d7f9ea23853f567258406a53c850bca01ae067aef3d38d69a903edad789e @@ -0,0 +1,2 @@ +I"1

Lab worksheets, links, and deadlines

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ed/c60d39209dc2cd105c97b8a9b63c09489d2a91d51b3e9e5a3a7709788485cd b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ed/c60d39209dc2cd105c97b8a9b63c09489d2a91d51b3e9e5a3a7709788485cd new file mode 100644 index 0000000..8d4fd73 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ed/c60d39209dc2cd105c97b8a9b63c09489d2a91d51b3e9e5a3a7709788485cd @@ -0,0 +1,2 @@ +I"ř

Yo! My name is Marius and I’m a senior majoring in Applied Math and Computer Science. I took CS10 Spring 2022 and have been involved with the course on staff ever since. I’m pumped to see what this semester has for all of us! I came into Berkeley with no coding experience and I remember how my roommates (who were in 61A/B at the time) screens used to look like giberish while they did hw. I had no idea what CS was so I decided just to try it out by taking CS10. The class quickly became my favorite I’ve taken so far at Berkeley as it opened up the world of programming to me in a very beginner-friendly way. I hope to lend other students a hand in finding their way into Computer Science as a whole and maybe even find a passion like I did :)

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ef/fc29829bd5380d918432ed67f7ab3505c346231a2c3c9fdc1e64a584e747e4 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ef/fc29829bd5380d918432ed67f7ab3505c346231a2c3c9fdc1e64a584e747e4 new file mode 100644 index 0000000..a71c1c6 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ef/fc29829bd5380d918432ed67f7ab3505c346231a2c3c9fdc1e64a584e747e4 @@ -0,0 +1,2 @@ +I"B

A list of all Project specifications and walkthroughs

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f2/365a6dffc53784a18256c047a1d8898f71ccfd4fad0353b10d900fdf01739a b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f2/365a6dffc53784a18256c047a1d8898f71ccfd4fad0353b10d900fdf01739a new file mode 100644 index 0000000..d1c1f7b --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f2/365a6dffc53784a18256c047a1d8898f71ccfd4fad0353b10d900fdf01739a @@ -0,0 +1,34 @@ +I"ł
+
Oct 5
+
+
+
Linked Lists & Encapsulation
+
3.1, 2.2, 2.3
+
+
+
Oct 6
+
+
+
SectionLinked Lists
+
Solution
+
+
+
Oct 7
+
+
+
Resizing Arrays
+
2.4, 2.5
+
+
+
Oct 8
+
Project Project 1: Ants vs. Some Bees
+
Oct 9
+
+
+
Runtime Analysis
+
8.1, 8.2, 8.3, 8.4
+
+
+
HW 2 due
+
+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/a97d4404963f1cceec78d9a299e962e10679928685a4f172fd791235bc6019 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/a97d4404963f1cceec78d9a299e962e10679928685a4f172fd791235bc6019 new file mode 100644 index 0000000..ee15975 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f3/a97d4404963f1cceec78d9a299e962e10679928685a4f172fd791235bc6019 @@ -0,0 +1,2 @@ +I"

Readings

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f7/8dd22d8bec0779b29b9e906c64302c69a28a55bbf550d4becae97f0f00e2c1 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f7/8dd22d8bec0779b29b9e906c64302c69a28a55bbf550d4becae97f0f00e2c1 new file mode 100644 index 0000000..92b5be2 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f7/8dd22d8bec0779b29b9e906c64302c69a28a55bbf550d4becae97f0f00e2c1 @@ -0,0 +1,3 @@ +I"§

Hi! I am a Junior majoring in Physics and a minor in EECS; I’ve been on the CS 10 staff team for a couple of semesters and I am very excited to meet you all. I’m from Rome, Italy, so if you have any questions about Italy, stop by and ask! I joined the class with ZERO experience in coding, and I left the class with enough skills to start my CS journey here at Cal. I hope to support you throughout the course!

+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f7/90734f56dd166095bcce4feaa2c168d90eb2bbe9903a17325d20c8433c1937 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f7/90734f56dd166095bcce4feaa2c168d90eb2bbe9903a17325d20c8433c1937 new file mode 100644 index 0000000..ef0eefa --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/f7/90734f56dd166095bcce4feaa2c168d90eb2bbe9903a17325d20c8433c1937 @@ -0,0 +1,2 @@ +I"1

CS10 The Beauty and Joy of Computing

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fb/b5053c3d594cdb0ca899b1e4923413b6be91612d9615f0ef1dc7a85ef838f9 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fb/b5053c3d594cdb0ca899b1e4923413b6be91612d9615f0ef1dc7a85ef838f9 new file mode 100644 index 0000000..fbbc8f3 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fb/b5053c3d594cdb0ca899b1e4923413b6be91612d9615f0ef1dc7a85ef838f9 @@ -0,0 +1,1026 @@ +I"–§

CS 10: The Beauty and Joy of Computing

+

UC Berkeley, Spring 2025

+ +

A gentle but thorough introduction to computer science.

+ +

Instructor: Teaching Professor Dan Garcia
+Instructor’s OH: Friday 1-2PM @ Soda-777
+Lectures: Monday, Wednesday, Friday 1-2 PM @ Anthropology and Art Practice Building, Room 160
+Labs: Tuesday, Thursday 3-5 @ Soda Hall, Room 438 (The Woz)
+Discussion: Thurs 6-8 PM @ Evans Hall, Room 60
+OH Queue: oh.cs10.org

+ +


+ +
+ +
+ + + +

CS10 Calendar

+ + + + + +

+ Jump to Current Week +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 1 Mon 8/26
Tue 8/27 Lec 1. Logistics + Abstraction
+ (Recording 1)
+ (Slides 1)
+ (Lecture Quiz 1) +
Presemester Survey Released
Due (08/30)
Wed 8/28 Lec 2. Functions + Conditional Logic
+ (Recording 2)
+ (Slides 2)
+ (Lecture Quiz 2) +
Lab 1. Welcome to Snap!
Thu 8/29 Disc 1. Welcome to Snap!
Fri 8/30
+ +


+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 2 Mon 9/2 NO CLASS (Holiday)
Tue 9/3 Proj 1: Worldle Released
Due (9/12)
Wed 9/4 Lec 3. Numbers + Abstraction
+ (Recording 3)
+ (Slides 3)
+ (Lecture Quiz 3) +
Lab 2. Build Your Own Blocks
Thu 9/5 Disc 2. Number Rep + Conditionals Reading: Week 2 Due
Fri 9/6
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 3 Mon 9/9 Lec 4. List, Scope, + HOFs
+ (Recording 4)
+ (Slides 4)
+ (Lecture Quiz 4)
Lab 3. Conditionals, Reporters, Testing
Tue 9/10 Proj 1: Worldle Due
Wed 9/11 Lec 5. Algorithms
+ (Recording 5)
+ (Slides 5)
+ (Lecture Quiz 5) +
Lab 4. Lists + HOFs
Thu 9/12 Disc 3. Data-types, Domain / Range, Scoping, Lists Reading: Week 3 Due
+ Proj 2: Worldle Released (due 9/26)
Fri 9/13
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 4 Mon 9/16 Lec 6. Algorithmic Complexity
+ (Recording 6)
+ (Slides 6)
+ (Lecture Quiz 6)
Lab 5. Algorithms
Tue 9/10
Wed 9/18 Lec 7. Quest Review
+ (Recording 7)
+ (Lecture Quiz 7) +
Lab 6. Algorithmic Complexity
Thu 9/19 Disc 4. HOFs + Quest Review Reading: Week 4 Due
Fri 9/20 Quest (from Sat to Sun)
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 5 Mon 9/23 Lec 8. Testing + 2048
+ (Recording 8)
+ (Slides 8)
+ (Lecture Quiz 8)
Lab 7. Testing + Proj 3
Tue 9/24
Wed 9/25 Lec 9. Social Implications of Computing: Computers in Education
+ (Recording 9)
+ (Slides 9)
+ (Lecture Quiz 9) +
No Lab Assignment:
Project Party 2 during lab
Thu 9/26 Disc 5. Algorithms Reading: Week 5 Due
+ Proj 2 Due
+
Fri 9/27 Quest Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 6 Mon 9/30 Lec 10. Recursion I (Functional)
+ (Recording 10)
+ (Slides 10)
+ (Lecture Quiz 10)
Lab 8. Boards
Tue 10/1 Proj 3 Released (due 10/10)
Wed 10/2 Lec 11. Recursion II (Fractals)
+ (Recording 11)
+ (Slides 11)
+ (Lecture Quiz 11)
+ (Recursion Code) +
Lab 9. Trees & Fractals
Thu 10/3 Disc 6. Recursion Reading: Week 6 Due
Fri 10/4 Quest Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 7 Mon 10/7 Lec 12. Dr. Kathy Yelick - Saving the World with Computing
+ (Recording 12)
+ (Slides 12)
+ (Lecture Quiz 12)
Proj 3 Party (no new lab)
Tue 10/8
Wed 10/9 Lec 13. Tree Recursion (Count Change)
+ (Recording 13)
+ (Slides 13)
+ (Lecture Quiz 13)
+ (Tree Recursion Code) +
Lab 10: Recursive Reporters
Thu 10/10 Disc 7. Tree Recursion Reading: Week 7 Due
+ Proj 3 Due
+ Project 4 Released (due 10/16)
Fri 10/10 Quest Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 8 Mon 10/14 Lec 14. Higher-Order Functions
+ (Recording 14)
+ (Slides 14)
+ (Lecture Quiz 14)
Lab 11: HOFs and Functions as Data
Tue 10/15
Wed 10/16 Lec 15. Programming Paradigms
+ (Recording 15)
+ (Slides 15)
+ (Lecture Quiz 15) + (Lec 15. Code) +
Midterm Review + Practice Midterm
+ Practice Midterm
+ Practice Fractal
Proj 4 Due
Thu 10/17 Disc 8. Proj 4 Presentations Reading: Week 8 Due
Fri 10/18 Midterm
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 9 Mon 10/21 Lec 16. Intro to Python
+ (Recording 16)
+ (Slides 16)
+ (Lecture Quiz 16)
Lab 12. Welcome to Python
Tue 10/22
Wed 10/23 Lec 17. Data Types & Structures (Python II)
+ (Recording 17)
+ (Slides 17)
+ (Lecture Quiz 17) +
Lab 13. Data Structures in Python Final Proj Released
Thu 10/24 Disc 9. Intro to Python Reading: Week 9 Due
Fri 10/25 Midterm Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 10 Mon 10/28 Lec 18. Linear Recursion (Python III)
+ (Recording 18)
+ (Slides 18)
+ (Lecture Quiz 18)
Lab 14. Linear Recursion
Tue 10/29
Wed 10/30 Lec 19. Tree Recursion & Game Theory (Python IV)
+ (Recording 19)
+ (Slides 19)
+ (Lecture Quiz 19) +
Lab 15. Tree Recursion Final Proj Prosposal Due
Thu 10/31 Disc 10. List Comprehension + Dictionaries Reading: Week 10 Due
Fri 11/1 Midterm Retake
+ Proj 5: Pyturis released
+ (due 11/14)
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 11 Mon 11/4 Lec 20. OOP (Python V)
+ (Recording 20)
+ (Slides 20)
+ (Demo Code)
+ (Lecture Quiz 20)
Lab 16. OOP in Python Proj 6: Final Project
Tue 11/5
Wed 11/6 Lec 21. HOFs in Python (Python VI)
+ (Recording 21)
+ (Slides 21)
+ (Lecture Quiz 21) +
Lab 17. Text Processing in Python
Thu 11/7 Disc 11: OOP + Python HOFs Proj 6: Final Project (due 12/6)
+ Reading: Week 11 Due
Fri 11/8 Midterm Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 12 Mon 11/11 NO CLASS (Holiday)
Tue 11/12 Proj 5 Due
Wed 11/13 Lec 22. Concurrency + Parallelism
+ (Recording 22)
+ (Slides 22)
+ (Lecture Quiz 22) +
Lab 18. Concurrency + Parallelism
Thu 11/14 Disc 12: Concurrency + Review Reading: Week 12 Due
Fri 11/15 Postterm
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 13 Mon 11/18 Lec 23. Generative AI
+ (Recording 23)
+ (Slides 23)
+ (Lecture Quiz 23)
Catch Up + PostTerm Practice (No New Lab)
Tue 11/19
Wed 11/20 Lec 24. Ethics in AI
+ (Recording 24)
+ (Slides 24)
+ (Lecture Quiz 24) +
Lab 20. Data Science
Thu 11/21 Disc 13: Review Reading: Week 13 Due
Fri 11/22 Postterm Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 14 Mon 11/25 Lec 25. Human-computer Interaction (HCI) - Guest
+ (Recording 25)
+ (Slides 25)
+ (Lecture Quiz 25)
Final Proj Party
Tue 11/26
Wed 11/27 NO CLASS (Holiday)
Thu 11/28 NO CLASS (Holiday)
Fri 11/29 NO CLASS (Holiday)
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 15 Mon 12/2 Lec 26. Alumni Panel
+ (Recording 26)
+ (Slides 26)
+ (Lecture Quiz 26)
Final Proj Party
Tue 12/3
Wed 12/4 Lec 27. Conclusion + Farewell
+ (Recording 27)
+ (Slides 27)
+ (Lecture Quiz 27)
Practice Postterm
Thu 12/5 Disc 14: Review Reading: Week 15 Due
Fri 12/6 Final Proj Due
+ Postterm Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 16 Mon 12/9 NO CLASS (RRR Week)Postterm Retake
Tue 12/10 NO CLASS (RRR Week)Postterm Retake
Wed 12/11 NO CLASS (RRR Week)Postterm Retake
Thu 12/12 NO CLASS (RRR Week)Postterm Retake
Fri 12/13 NO CLASS (RRR Week)Postterm Retake
+ +


+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 17 Mon 12/16 NO CLASS (Finals Week)Postterm Retake
Tue 12/17 NO CLASS (Finals Week)Postterm Retake
Wed 12/18 NO CLASS (Finals Week)Postterm Retake
Thu 12/19 NO CLASS (Finals Week)Postterm Retake
Fri 12/20 NO CLASS (Finals Week)Postterm Retake
+ +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fc/a379a735e144682e62ffd6ca1bad38ae0740c662b1002ddc40ba069ecdcb3d b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fc/a379a735e144682e62ffd6ca1bad38ae0740c662b1002ddc40ba069ecdcb3d new file mode 100644 index 0000000..ffaf84d --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fc/a379a735e144682e62ffd6ca1bad38ae0740c662b1002ddc40ba069ecdcb3d @@ -0,0 +1,2 @@ +I"

Lab 1

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fe/02680f247961a1369a66f681f990ec1e4a8708a2e84871019a93a7287ae7dd b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fe/02680f247961a1369a66f681f990ec1e4a8708a2e84871019a93a7287ae7dd new file mode 100644 index 0000000..9223c35 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fe/02680f247961a1369a66f681f990ec1e4a8708a2e84871019a93a7287ae7dd @@ -0,0 +1,2 @@ +I"

Announcements

+:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Module/ad/ff55491e746c0b64ae30147e890209af81a450bbf785cb66ae03e1c001eec8 b/.jekyll-cache/Jekyll/Cache/Module/ad/ff55491e746c0b64ae30147e890209af81a450bbf785cb66ae03e1c001eec8 new file mode 100644 index 0000000..088cbd0 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Module/ad/ff55491e746c0b64ae30147e890209af81a450bbf785cb66ae03e1c001eec8 @@ -0,0 +1,3 @@ +I" + +:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Module/c5/b97351fa130c3565186207ee46c6da5454864efcf637fc3df8ce73dc5ef549 b/.jekyll-cache/Jekyll/Cache/Module/c5/b97351fa130c3565186207ee46c6da5454864efcf637fc3df8ce73dc5ef549 new file mode 100644 index 0000000..8c803f3 --- /dev/null +++ b/.jekyll-cache/Jekyll/Cache/Module/c5/b97351fa130c3565186207ee46c6da5454864efcf637fc3df8ce73dc5ef549 @@ -0,0 +1,8 @@ +I"Ž +:ET \ No newline at end of file diff --git a/Gemfile b/Gemfile index 40cd3dd..eca8806 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,7 @@ gem 'jekyll', '~> 4' gem 'faraday-retry', '~> 2.2' gem 'kramdown-parser-gfm' gem 'webrick' +gem 'tzinfo-data' group :jekyll_plugins do gem 'jekyll-github-metadata', '~> 2.16' diff --git a/Gemfile.lock b/Gemfile.lock index 39cac66..1bddbc2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -215,6 +215,10 @@ GEM terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) thread_safe (0.3.6) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + tzinfo-data (1.2025.1) + tzinfo (>= 1.0.0) unicode-display_width (2.5.0) uri (0.13.0) virtus (2.0.0) @@ -250,6 +254,7 @@ DEPENDENCIES rubocop-capybara rubocop-rspec selenium-webdriver + tzinfo-data webrick BUNDLED WITH diff --git a/_config.yml b/_config.yml index be89f80..eb6d919 100644 --- a/_config.yml +++ b/_config.yml @@ -34,7 +34,7 @@ course_email: cs10@berkeley.edu gradescope_course_id: 831412 # you can find this in the Gradescope URL after /courses bcourses_course_id: 123456 # Same as above, but for bCourses. Leave blank if not in use... ed_course_id: 123456 # Again, same as above. -sememster: fa25 # set for the current seemester +sememster: sp25 # set for the current seemester # This should be one of eecs, dsus, stat # (Future) This will control some footer text, and later custom styling. course_department: dsus diff --git a/_site/LICENSE b/_site/LICENSE new file mode 100644 index 0000000..8892f7f --- /dev/null +++ b/_site/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Kevin Lin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/_site/announcements/index.html b/_site/announcements/index.html new file mode 100644 index 0000000..d073559 --- /dev/null +++ b/_site/announcements/index.html @@ -0,0 +1,425 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Announcements | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Announcements + + +

+ + +

Announcements are stored in the _announcements directory and rendered according to the layout file, _layouts/announcement.html.

+ +
+

+ + + Week 1 Announcement + + +

+ + + + Apr 8 + · + + + 0 min read + +
+
    +
  1. Create a new repository based on Just the Class.
  2. +
  3. Configure a publishing source for GitHub Pages. Your course website is now live!
  4. +
  5. Update _config.yml with your course information.
  6. +
  7. Edit and create .md Markdown files to add your content.
  8. +
+ +
+
+ +
+

+ + + Week 0 Announcement + + +

+ + + + Apr 1 + · + + + 0 min read + +
+

Hello world!

+ +
+
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/assets/css/just-the-docs-dark.css b/_site/assets/css/just-the-docs-dark.css new file mode 100644 index 0000000..837af44 --- /dev/null +++ b/_site/assets/css/just-the-docs-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* a11y-light theme */ +/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ +/* @author: ericwbailey */ +/* Adapted to pygments/rouge by @cycomachead */ +@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap"); +:root { + --pygments-a11y-bg-color: #fefefe; + --pygments-a11y-light-on-dark: #FFF; /* Used for errors */ + --pygments-a11y-light-gray: #696969; /* comments */ + --pygments-a11y-dark-gray: #545454; + --pygments-a11y-purple: #7928a1; + --pygments-a11y-blue: #007faa; + --pygments-a11y-green: #008000; + --pygments-a11y-yellow: #aa5d00; /* attributes */ + --pygments-a11y-orange: #aa5d00; + --pygments-a11y-red: #d91e18; +} + +.highlight, +pre.highlight { + background: var(--pygments-a11y-bg-color); + color: var(--pygments-a11y-dark-gray); +} + +.highlight pre, +.highlight .hll, +.highlight .w { + background: var(--pygments-a11y-bg-color); +} + +.highlight .c { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .err { + color: var(--pygments-a11y-light-on-dark); + background-color: var(--pygments-a11y-red); +} + +.highlight .k, +.highlight .kc, +.highlight .kd, +.highlight .kn, +.highlight .kp, +.highlight .kr, +.highlight .kt { + color: var(--pygments-a11y-purple); +} + +.highlight .n, +.highlight .o, +.highlight .p, +.highlight .nf, +.highlight .nn, +.highlight .nx { + color: var(--pygments-a11y-dark-gray); +} + +.highlight .cm, +.highlight .cp, +.highlight .c1, +.highlight .cs { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs, +.highlight .ow { + font-weight: 700; +} + +.highlight .l, +.highlight .ld, +.highlight .s, +.highlight .sb, +.highlight .sc, +.highlight .sd, +.highlight .s2, +.highlight .se, +.highlight .sh, +.highlight .si, +.highlight .sx, +.highlight .s1 { + color: var(--pygments-a11y-green); +} + +.highlight .bp, +.highlight .nb, +.highlight .nc, +.highlight .no, +.highlight .nd, +.highlight .ni, +.highlight .ne, +.highlight .nl, +.highlight .nv, +.highlight .py, +.highlight .vc, +.highlight .vg { + color: var(--pygments-a11y-orange); /* #ca7601; */ +} + +.highlight .gd, +.highlight .nt, +.highlight .vi, +.highlight .language-json .w + .s2 { + color: var(--pygments-a11y-red); /* #e35549 */ +} + +.highlight .il, +.highlight .m, +.highlight .mf, +.highlight .mh, +.highlight .mi, +.highlight .mo, +.highlight .na { + color: var(--pygments-a11y-yellow); /* #b66a00 */ +} + +.highlight .sr, +.highlight .ss, +.highlight .language-json .kc { + color: var(--pygments-a11y-blue); /*#0083bb */ +} + +.highlight .gu { + color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */ +} + +.highlight .gi { + color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */ +} + +/* a11y-dark theme */ +/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ +/* @author: ericwbailey */ +/* Adapted to pygments/rouge by @cycomachead */ +:root { + --pygments-a11y-bg-color: #2b2b2b; + --pygments-a11y-dark-on-light: #000; /* Used for errors */ + --pygments-a11y-light-gray: #d4d0ab; /* comments */ + --pygments-a11y-dark-gray: #f8f8f2; + --pygments-a11y-purple: #dcc6e0; + --pygments-a11y-blue: #00e0e0; + --pygments-a11y-green: #abe338; + --pygments-a11y-yellow: #ffd700; /* attributes */ + --pygments-a11y-orange: #f5ab35; + --pygments-a11y-red: #ffa07a; +} + +.highlight, +pre.highlight { + background: var(--pygments-a11y-bg-color); + color: var(--pygments-a11y-dark-gray); +} + +.highlight pre, +.highlight .hll, +.highlight .w { + background: var(--pygments-a11y-bg-color); +} + +.highlight .c { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .err { + color: var(--pygments-a11y-dark-on-light); + background-color: var(--pygments-a11y-red); +} + +.highlight .k, +.highlight .kc, +.highlight .kd, +.highlight .kn, +.highlight .kp, +.highlight .kr, +.highlight .kt { + color: var(--pygments-a11y-purple); +} + +.highlight .n, +.highlight .o, +.highlight .p, +.highlight .nf, +.highlight .nn, +.highlight .nx { + color: var(--pygments-a11y-dark-gray); +} + +.highlight .cm, +.highlight .cp, +.highlight .c1, +.highlight .cs { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs, +.highlight .ow { + font-weight: 700; +} + +.highlight .l, +.highlight .ld, +.highlight .s, +.highlight .sb, +.highlight .sc, +.highlight .sd, +.highlight .s2, +.highlight .se, +.highlight .sh, +.highlight .si, +.highlight .sx, +.highlight .s1 { + color: var(--pygments-a11y-green); +} + +.highlight .bp, +.highlight .nb, +.highlight .nc, +.highlight .no, +.highlight .nd, +.highlight .ni, +.highlight .ne, +.highlight .nl, +.highlight .nv, +.highlight .py, +.highlight .vc, +.highlight .vg { + color: var(--pygments-a11y-orange); /* #ca7601; */ +} + +.highlight .gd, +.highlight .nt, +.highlight .vi, +.highlight .language-json .w + .s2 { + color: var(--pygments-a11y-red); /* #e35549 */ +} + +.highlight .il, +.highlight .m, +.highlight .mf, +.highlight .mh, +.highlight .mi, +.highlight .mo, +.highlight .na { + color: var(--pygments-a11y-yellow); /* #b66a00 */ +} + +.highlight .sr, +.highlight .ss, +.highlight .language-json .kc { + color: var(--pygments-a11y-blue); /*#0083bb */ +} + +.highlight .gu { + color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */ +} + +.highlight .gi { + color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */ +} + +.btn:not(.btn-outline):not(summary), summary:not(.btn-outline):not(summary) { + color: #002676 !important; +} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document + ========================================================================== */ +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; /* 1 */ + text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ +/** + * Remove the gray background on active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove the border on images inside links in IE 10. + */ +img { + border-style: none; +} + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type=button], +[type=reset], +[type=submit] { + appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type=search] { + appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type=search]::-webkit-search-decoration { + appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +:root { + color-scheme: dark; +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} +html { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + html { + font-size: 1rem !important; + } +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #fff; + background-color: #0C0A0E; + overflow-wrap: break-word; +} + +ol, +ul, +dl, +pre, +address, +blockquote, +table, +div, +hr, +form, +fieldset, +noscript .table-wrapper { + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +#toctitle { + margin-top: 0; + margin-bottom: 1em; + font-weight: 500; + line-height: 1.25; + color: #f5f6fa; +} + +p { + margin-top: 1em; + margin-bottom: 1em; +} + +a { + color: #406FFE; + text-decoration: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #44434d; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(64, 111, 254, 0.45); +} + +code { + font-family: "SFMono-Regular", menlo, consolas, monospace; + font-size: 0.75em; + line-height: 1.4; +} + +figure, +pre { + margin: 0; +} + +li { + margin: 0.25em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + height: 1px; + padding: 0; + margin: 2rem 0; + background-color: #44434d; + border: 0; +} + +blockquote { + margin: 10px 0; + margin-block-start: 0; + margin-inline-start: 0; + padding-left: 1rem; + border-left: 3px solid #44434d; +} + +.side-bar { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: #0C0A0E; +} +@media (min-width: 50rem) { + .side-bar { + flex-flow: column nowrap; + position: fixed; + width: 15.5rem; + height: 100%; + border-right: 1px solid #44434d; + align-items: flex-end; + } +} +@media (min-width: 66.5rem) { + .side-bar { + width: calc((100% - 1456px) / 2 + 256px); + min-width: 256px; + } +} +@media (min-width: 50rem) { + .side-bar + .main { + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .side-bar + .main { + margin-left: max(256px, (100% - 1456px) / 2 + 256px); + } +} +.side-bar + .main .main-header { + display: none; + background-color: #0C0A0E; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header { + display: flex; + background-color: #0C0A0E; + } +} +.side-bar + .main .main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header.nav-open { + display: flex; + } +} + +.main { + margin: auto; +} +@media (min-width: 50rem) { + .main { + position: relative; + max-width: 1200px; + } +} + +.main-content-wrap { + padding-top: 1rem; + padding-bottom: 1rem; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-top: 2rem; + padding-bottom: 2rem; + } +} + +.main-header { + z-index: 0; + border-bottom: 1px solid #44434d; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + } +} + +.site-nav, +.site-header, +.site-footer { + width: 100%; +} +@media (min-width: 66.5rem) { + .site-nav, + .site-header, + .site-footer { + width: 256px; + } +} + +.site-nav { + display: none; +} +.site-nav.nav-open { + display: block; +} +@media (min-width: 50rem) { + .site-nav { + display: block; + padding-top: 3rem; + padding-bottom: 1rem; + overflow-y: auto; + flex: 1 1 auto; + } +} + +.site-header { + display: flex; + min-height: 3.75rem; + align-items: center; +} +@media (min-width: 50rem) { + .site-header { + height: 3.75rem; + max-height: 3.75rem; + border-bottom: 1px solid #44434d; + } +} + +.site-title { + flex-grow: 1; + display: flex; + height: 100%; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #f5f6fa; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .site-title { + padding-right: 2rem; + padding-left: 2rem; + } +} +.site-title { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .site-title { + font-size: 1.5rem !important; + line-height: 1.25; + } +} +@media (min-width: 50rem) { + .site-title { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } +} + +.site-button { + display: flex; + height: 100%; + padding: 1rem; + align-items: center; +} + +@media (min-width: 50rem) { + .site-header .site-button { + display: none; + } +} +.site-title:hover { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); +} + +body { + position: relative; + padding-bottom: 4rem; + overflow-y: scroll; +} +@media (min-width: 50rem) { + body { + position: static; + padding-bottom: 0; + } +} + +.site-footer { + position: absolute; + bottom: 0; + left: 0; + padding-top: 1rem; + padding-bottom: 1rem; + color: #f5f6fa; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .site-footer { + padding-right: 2rem; + padding-left: 2rem; + } +} +.site-footer { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .site-footer { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .site-footer { + position: static; + justify-self: end; + } +} + +.icon { + width: 1.5rem; + height: 1.5rem; + color: #406FFE; +} + +.main-content { + line-height: 1.6; +} +.main-content ol, +.main-content ul, +.main-content dl, +.main-content pre, +.main-content address, +.main-content blockquote, +.main-content .table-wrapper { + margin-top: 0.5em; +} +.main-content a { + overflow: hidden; + text-overflow: ellipsis; +} +.main-content ul, +.main-content ol { + padding-left: 1.5em; +} +.main-content li .highlight { + margin-top: 0.25rem; +} +.main-content ol { + list-style-type: none; + counter-reset: step-counter; +} +.main-content ol > li { + position: relative; +} +.main-content ol > li::before { + position: absolute; + top: 0.2em; + left: -1.6em; + color: #f5f6fa; + content: counter(step-counter); + counter-increment: step-counter; +} +.main-content ol > li::before { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + font-size: 0.875rem !important; + } +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + top: 0.11em; + } +} +.main-content ol > li ol { + counter-reset: sub-counter; +} +.main-content ol > li ol > li::before { + content: counter(sub-counter, lower-alpha); + counter-increment: sub-counter; +} +.main-content ul { + list-style: none; +} +.main-content ul > li::before { + position: absolute; + margin-left: -1.4em; + color: #f5f6fa; + content: "•"; +} +.main-content .task-list-item::before { + content: ""; +} +.main-content .task-list-item-checkbox { + margin-right: 0.6em; + margin-left: -1.4em; +} +.main-content hr + * { + margin-top: 0; +} +.main-content h1:first-of-type { + margin-top: 0.5em; +} +.main-content dl { + display: grid; + grid-template: auto/10em 1fr; +} +.main-content dt, +.main-content dd { + margin: 0.25em 0; +} +.main-content dt { + grid-column: 1; + font-weight: 500; + text-align: right; +} +.main-content dt::after { + content: ":"; +} +.main-content dd { + grid-column: 2; + margin-bottom: 0; + margin-left: 1em; +} +.main-content dd blockquote:first-child, +.main-content dd div:first-child, +.main-content dd dl:first-child, +.main-content dd dt:first-child, +.main-content dd h1:first-child, +.main-content dd h2:first-child, +.main-content dd h3:first-child, +.main-content dd h4:first-child, +.main-content dd h5:first-child, +.main-content dd h6:first-child, +.main-content dd li:first-child, +.main-content dd ol:first-child, +.main-content dd p:first-child, +.main-content dd pre:first-child, +.main-content dd table:first-child, +.main-content dd ul:first-child, +.main-content dd .table-wrapper:first-child { + margin-top: 0; +} +.main-content dd dl:first-child dt:first-child, +.main-content dd dl:first-child dd:nth-child(2), +.main-content ol dl:first-child dt:first-child, +.main-content ol dl:first-child dd:nth-child(2), +.main-content ul dl:first-child dt:first-child, +.main-content ul dl:first-child dd:nth-child(2) { + margin-top: 0; +} +.main-content .anchor-heading { + position: absolute; + right: -1rem; + width: 1.5rem; + height: 100%; + padding-right: 0.25rem; + padding-left: 0.25rem; + overflow: visible; +} +@media (min-width: 50rem) { + .main-content .anchor-heading { + right: auto; + left: -1.5rem; + } +} +.main-content .anchor-heading svg { + display: inline-block; + width: 100%; + height: 100%; + color: #406FFE; + visibility: hidden; +} +.main-content .anchor-heading:hover svg, +.main-content .anchor-heading:focus svg, +.main-content h1:hover > .anchor-heading svg, +.main-content h2:hover > .anchor-heading svg, +.main-content h3:hover > .anchor-heading svg, +.main-content h4:hover > .anchor-heading svg, +.main-content h5:hover > .anchor-heading svg, +.main-content h6:hover > .anchor-heading svg { + visibility: visible; +} +.main-content summary { + cursor: pointer; +} +.main-content h1, +.main-content h2, +.main-content h3, +.main-content h4, +.main-content h5, +.main-content h6, +.main-content #toctitle { + position: relative; + margin-top: 1.5em; + margin-bottom: 0.25em; +} +.main-content h1 + table, +.main-content h1 + .table-wrapper, +.main-content h1 + .code-example, +.main-content h1 + .highlighter-rouge, +.main-content h1 + .sectionbody .listingblock, +.main-content h2 + table, +.main-content h2 + .table-wrapper, +.main-content h2 + .code-example, +.main-content h2 + .highlighter-rouge, +.main-content h2 + .sectionbody .listingblock, +.main-content h3 + table, +.main-content h3 + .table-wrapper, +.main-content h3 + .code-example, +.main-content h3 + .highlighter-rouge, +.main-content h3 + .sectionbody .listingblock, +.main-content h4 + table, +.main-content h4 + .table-wrapper, +.main-content h4 + .code-example, +.main-content h4 + .highlighter-rouge, +.main-content h4 + .sectionbody .listingblock, +.main-content h5 + table, +.main-content h5 + .table-wrapper, +.main-content h5 + .code-example, +.main-content h5 + .highlighter-rouge, +.main-content h5 + .sectionbody .listingblock, +.main-content h6 + table, +.main-content h6 + .table-wrapper, +.main-content h6 + .code-example, +.main-content h6 + .highlighter-rouge, +.main-content h6 + .sectionbody .listingblock, +.main-content #toctitle + table, +.main-content #toctitle + .table-wrapper, +.main-content #toctitle + .code-example, +.main-content #toctitle + .highlighter-rouge, +.main-content #toctitle + .sectionbody .listingblock { + margin-top: 1em; +} +.main-content h1 + p:not(.label), +.main-content h2 + p:not(.label), +.main-content h3 + p:not(.label), +.main-content h4 + p:not(.label), +.main-content h5 + p:not(.label), +.main-content h6 + p:not(.label), +.main-content #toctitle + p:not(.label) { + margin-top: 0; +} +.main-content > h1:first-child, +.main-content > h2:first-child, +.main-content > h3:first-child, +.main-content > h4:first-child, +.main-content > h5:first-child, +.main-content > h6:first-child, +.main-content > .sect1:first-child > h2, +.main-content > .sect2:first-child > h3, +.main-content > .sect3:first-child > h4, +.main-content > .sect4:first-child > h5, +.main-content > .sect5:first-child > h6 { + margin-top: 0.5rem; +} + +.nav-list { + padding: 0; + margin-top: 0; + margin-bottom: 0; + list-style: none; +} +.nav-list .nav-list-item { + position: relative; + margin: 0; +} +.nav-list .nav-list-item { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .nav-list .nav-list-item { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 0.875rem !important; + } +} +.nav-list .nav-list-item .nav-list-link { + display: block; + min-height: 3rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + line-height: 2.5rem; + padding-right: 3rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-link { + min-height: 2rem; + line-height: 1.5rem; + padding-right: 2rem; + padding-left: 2rem; + } +} +.nav-list .nav-list-item .nav-list-link.external > svg { + width: 1rem; + height: 1rem; + vertical-align: text-bottom; +} +.nav-list .nav-list-item .nav-list-link.active { + font-weight: 600; + text-decoration: none; +} +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #406FFE; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-expander { + width: 2rem; + height: 2rem; + padding: 0.5rem; + } +} +.nav-list .nav-list-item .nav-list-expander:hover { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); +} +.nav-list .nav-list-item .nav-list-expander svg { + transform: rotate(90deg); +} +.nav-list .nav-list-item > .nav-list { + display: none; + padding-left: 0.75rem; + list-style: none; +} +.nav-list .nav-list-item > .nav-list .nav-list-item { + position: relative; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { + color: #959396; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: #959396; +} +.nav-list .nav-list-item.active > .nav-list-expander svg { + transform: rotate(-90deg); +} +.nav-list .nav-list-item.active > .nav-list { + display: block; +} + +.nav-category { + padding: 0.5rem 1rem; + font-weight: 600; + text-align: start; + text-transform: uppercase; + border-bottom: 1px solid #44434d; +} +.nav-category { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .nav-category { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .nav-category { + padding: 0.5rem 2rem; + margin-top: 1rem; + text-align: start; + } + .nav-category:first-child { + margin-top: 0; + } +} + +.nav-list.nav-category-list > .nav-list-item { + margin: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list { + padding: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { + color: #406FFE; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #406FFE; +} + +.aux-nav { + height: 100%; + overflow-x: auto; +} +.aux-nav { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .aux-nav { + font-size: 0.75rem !important; + } +} +.aux-nav .aux-nav-list { + display: flex; + height: 100%; + padding: 0; + margin: 0; + list-style: none; +} +.aux-nav .aux-nav-list-item { + display: inline-block; + height: 100%; + padding: 0; + margin: 0; +} +@media (min-width: 50rem) { + .aux-nav { + padding-right: 1rem; + } +} + +@media (min-width: 50rem) { + .breadcrumb-nav { + margin-top: -1rem; + } +} + +.breadcrumb-nav-list { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} + +.breadcrumb-nav-list-item { + display: table-cell; +} +.breadcrumb-nav-list-item { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumb-nav-list-item { + font-size: 0.75rem !important; + } +} +.breadcrumb-nav-list-item::before { + display: none; +} +.breadcrumb-nav-list-item::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #f5f6fa; + content: "/"; +} +.breadcrumb-nav-list-item:last-child::after { + content: ""; +} + +h1, +.text-alpha { + font-weight: 300; +} +h1, +.text-alpha { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + h1, + .text-alpha { + font-size: 2.25rem !important; + } +} + +h2, +.text-beta, +#toctitle { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + h2, + .text-beta, + #toctitle { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +h3, +.text-gamma, +.announcement h1, +.announcement h2 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + h3, + .text-gamma, + .announcement h1, + .announcement h2 { + font-size: 1.125rem !important; + } +} + +h4, +.text-delta { + font-weight: 400; + text-transform: uppercase; + letter-spacing: 0.1em; +} +h4, +.text-delta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h4, + .text-delta { + font-size: 0.75rem !important; + } +} + +h4 code { + text-transform: none; +} + +h5, +.text-epsilon, +.announcement .announcement-meta { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + h5, + .text-epsilon, + .announcement .announcement-meta { + font-size: 0.875rem !important; + } +} + +h6, +.text-zeta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h6, + .text-zeta { + font-size: 0.75rem !important; + } +} + +.text-small { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .text-small { + font-size: 0.75rem !important; + } +} + +.text-mono { + font-family: "SFMono-Regular", menlo, consolas, monospace !important; +} + +.text-left { + text-align: left !important; +} + +.text-center { + text-align: center !important; +} + +.text-right { + text-align: right !important; +} + +.label:not(g), .staffer .staffer-badge:not(g), +.label-blue:not(g) { + display: inline-block; + padding: 0.16em 0.56em; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #fff; + text-transform: uppercase; + vertical-align: middle; + background-color: #2869e6; + border-radius: 12px; +} +.label:not(g), .staffer .staffer-badge:not(g), +.label-blue:not(g) { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .label:not(g), .staffer .staffer-badge:not(g), + .label-blue:not(g) { + font-size: 0.75rem !important; + } +} + +.label-green:not(g) { + background-color: #009c7b; +} + +.label-purple:not(g) { + background-color: #5e41d0; +} + +.label-red:not(g) { + background-color: #e94c4c; +} + +.label-yellow:not(g) { + color: #ecebed; + background-color: #f7d12e; +} + +.btn, summary { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #406FFE; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #ecebed; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; +} +.btn:focus, summary:focus { + text-decoration: none; + outline: none; + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:focus:hover, summary:focus:hover, .btn.selected:focus, summary.selected:focus { + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:hover, summary:hover, .btn.zeroclipboard-is-hover, summary.zeroclipboard-is-hover { + color: #3667fe; +} +.btn:hover, summary:hover, .btn:active, summary:active, .btn.zeroclipboard-is-hover, summary.zeroclipboard-is-hover, .btn.zeroclipboard-is-active, summary.zeroclipboard-is-active { + text-decoration: none; + background-color: #e9e8eb; +} +.btn:active, summary:active, .btn.selected, summary.selected, .btn.zeroclipboard-is-active, summary.zeroclipboard-is-active { + background-color: #e4e3e6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn.selected:hover, summary.selected:hover { + background-color: #cfcfcf; +} +.btn:disabled, summary:disabled, .btn:disabled:hover, .btn.disabled, summary.disabled, .btn.disabled:hover { + color: rgba(102, 102, 102, 0.5); + cursor: default; + background-color: rgba(229, 229, 229, 0.5); + background-image: none; + box-shadow: none; +} + +.btn-outline, summary { + color: #406FFE; + background: transparent; + box-shadow: inset 0 0 0 2px #27262b; +} +.btn-outline:hover, summary:hover, .btn-outline:active, summary:active, .btn-outline.zeroclipboard-is-hover, summary.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active, summary.zeroclipboard-is-active { + color: #2c60fe; + text-decoration: none; + background-color: transparent; + box-shadow: inset 0 0 0 3px #27262b; +} +.btn-outline:focus, summary:focus { + text-decoration: none; + outline: none; + box-shadow: inset 0 0 0 2px #eeebee, 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn-outline:focus:hover, summary:focus:hover, .btn-outline.selected:focus, summary.selected:focus { + box-shadow: inset 0 0 0 2px #eeebee; +} + +.btn-primary { + color: #fff; + background-color: #00236c; + background-image: linear-gradient(#002e90, #00236c); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { + color: #fff; + background-color: #001f62; + background-image: linear-gradient(#002980, #001f62); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #001e5d; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #001643; +} + +.btn-purple { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-purple.selected:hover { + background-color: #472cb2; +} + +.btn-blue { + color: #fff; + background-color: #227efa; + background-image: linear-gradient(#4593fb, #227efa); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { + color: #fff; + background-color: #1878fa; + background-image: linear-gradient(#368afa, #1878fa); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #1375f9; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #0669ed; +} + +.btn-green { + color: #fff; + background-color: #10ac7d; + background-image: linear-gradient(#13cc95, #10ac7d); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-green:hover, .btn-green.zeroclipboard-is-hover { + color: #fff; + background-color: #0fa276; + background-image: linear-gradient(#12be8b, #0fa276); +} +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { + background-color: #0f9e73; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-green.selected:hover { + background-color: #0d8662; +} + +.btn-reset { + background: none; + border: none; + margin: 0; + text-align: inherit; + font: inherit; + border-radius: 0; + appearance: none; +} + +.search { + position: relative; + z-index: 2; + flex-grow: 1; + height: 4rem; + padding: 0.5rem; + transition: padding linear 200ms; +} +@media (min-width: 50rem) { + .search { + position: relative !important; + width: auto !important; + height: 100% !important; + padding: 0; + transition: none; + } +} + +.search-input-wrap { + position: relative; + z-index: 1; + height: 3rem; + overflow: hidden; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + transition: height linear 200ms; +} +@media (min-width: 50rem) { + .search-input-wrap { + position: absolute; + width: 100%; + max-width: 33.5rem; + height: 100% !important; + border-radius: 0; + box-shadow: none; + transition: width ease 400ms; + } +} + +.search-input { + position: absolute; + width: 100%; + height: 100%; + padding: 0.5rem 1rem 0.5rem 2.5rem; + font-size: 1rem; + color: #fff; + background-color: #0C0A0E; + border-top: 0; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-input { + padding: 0.5rem 1rem 0.5rem 3.5rem; + font-size: 0.875rem; + background-color: #0C0A0E; + transition: padding-left linear 200ms; + } +} +.search-input:focus { + outline: 0; +} +.search-input:focus + .search-label .search-icon { + color: #406FFE; +} + +.search-label { + position: absolute; + display: flex; + height: 100%; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .search-label { + padding-left: 2rem; + transition: padding-left linear 200ms; + } +} +.search-label .search-icon { + width: 1.2rem; + height: 1.2rem; + align-self: center; + color: #f5f6fa; +} + +.search-results { + position: absolute; + left: 0; + display: none; + width: 100%; + max-height: calc(100% - 4rem); + overflow-y: auto; + background-color: #0C0A0E; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} +@media (min-width: 50rem) { + .search-results { + top: 100%; + width: 33.5rem; + max-height: calc(100vh - 200%) !important; + } +} + +.search-results-list { + padding-left: 0; + margin-bottom: 0.25rem; + list-style: none; +} +.search-results-list { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .search-results-list { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .search-results-list { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-results-list { + font-size: 0.875rem !important; + } +} + +.search-results-list-item { + padding: 0; + margin: 0; +} + +.search-result { + display: block; + padding: 0.25rem 0.75rem; +} +.search-result:hover, .search-result.active { + background-color: #201f23; +} + +.search-result-title { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +@media (min-width: 31.25rem) { + .search-result-title { + display: inline-block; + width: 40%; + padding-right: 0.5rem; + vertical-align: top; + } +} + +.search-result-doc { + display: flex; + align-items: center; + word-wrap: break-word; +} +.search-result-doc.search-result-doc-parent { + opacity: 0.5; +} +.search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.6875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; + } +} +.search-result-doc .search-result-icon { + width: 1rem; + height: 1rem; + margin-right: 0.5rem; + color: #406FFE; + flex-shrink: 0; +} +.search-result-doc .search-result-doc-title { + overflow: auto; +} + +.search-result-section { + margin-left: 1.5rem; + word-wrap: break-word; +} + +.search-result-rel-url { + display: block; + margin-left: 1.5rem; + overflow: hidden; + color: #959396; + text-overflow: ellipsis; + white-space: nowrap; +} +.search-result-rel-url { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .search-result-rel-url { + font-size: 0.625rem !important; + } +} + +.search-result-previews { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + margin-left: 0.5rem; + color: #959396; + word-wrap: break-word; + border-left: 1px solid; + border-left-color: #44434d; +} +.search-result-previews { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .search-result-previews { + font-size: 0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .search-result-previews { + display: inline-block; + width: 60%; + padding-left: 0.5rem; + margin-left: 0; + vertical-align: top; + } +} + +.search-result-preview + .search-result-preview { + margin-top: 0.25rem; +} + +.search-result-highlight { + font-weight: bold; +} + +.search-no-result { + padding: 0.5rem 0.75rem; +} +.search-no-result { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-no-result { + font-size: 0.875rem !important; + } +} + +.search-button { + position: fixed; + right: 1rem; + bottom: 1rem; + display: flex; + width: 3.5rem; + height: 3.5rem; + background-color: #0C0A0E; + border: 1px solid rgba(64, 111, 254, 0.3); + border-radius: 1.75rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + align-items: center; + justify-content: center; +} + +.search-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1; + width: 0; + height: 0; + background-color: rgba(0, 0, 0, 0.3); + opacity: 0; + transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; +} + +.search-active .search { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; +} +.search-active .search-input-wrap { + height: 4rem; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-active .search-input-wrap { + width: 33.5rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + } +} +.search-active .search-input { + background-color: #0C0A0E; +} +@media (min-width: 50rem) { + .search-active .search-input { + padding-left: 2.3rem; + } +} +@media (min-width: 50rem) { + .search-active .search-label { + padding-left: 0.6rem; + } +} +.search-active .search-results { + display: block; +} +.search-active .search-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: opacity ease 400ms, width 0s, height 0s; +} +@media (min-width: 50rem) { + .search-active .main { + position: fixed; + right: 0; + left: 0; + } +} +.search-active .main-header { + padding-top: 4rem; +} +@media (min-width: 50rem) { + .search-active .main-header { + padding-top: 0; + } +} + +.table-wrapper { + display: block; + width: 100%; + max-width: 100%; + margin-bottom: 1.5rem; + overflow-x: auto; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} + +table { + display: table; + min-width: 100%; + border-collapse: separate; +} + +th, +td { + min-width: 7.5rem; + padding: 0.5rem 0.75rem; + background-color: #302d36; + border-bottom: 1px solid rgba(68, 67, 77, 0.5); + border-left: 1px solid #44434d; +} +th, +td { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + th, + td { + font-size: 0.875rem !important; + } +} +th:first-of-type, +td:first-of-type { + border-left: 0; +} + +tbody tr:last-of-type th, +tbody tr:last-of-type td { + border-bottom: 0; +} +tbody tr:last-of-type td { + padding-bottom: 0.75rem; +} + +thead th { + border-bottom: 1px solid #44434d; +} + +:not(pre, figure) > code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: #31343f; + border: 1px solid #44434d; + border-radius: 4px; +} + +a:visited code { + border-color: #44434d; +} + +div.highlighter-rouge, +div.listingblock > div.content, +figure.highlight { + margin-top: 0; + margin-bottom: 0.75rem; + background-color: #31343f; + border-radius: 4px; + box-shadow: none; + -webkit-overflow-scrolling: touch; + position: relative; + padding: 0; +} +div.highlighter-rouge > button, +div.listingblock > div.content > button, +figure.highlight > button { + width: 0.75rem; + opacity: 0; + position: absolute; + top: 0; + right: 0; + border: 0.75rem solid #31343f; + background-color: #31343f; + color: #fff; + box-sizing: content-box; +} +div.highlighter-rouge > button svg, +div.listingblock > div.content > button svg, +figure.highlight > button svg { + fill: #fff; +} +div.highlighter-rouge > button:active, +div.listingblock > div.content > button:active, +figure.highlight > button:active { + text-decoration: none; + outline: none; + opacity: 1; +} +div.highlighter-rouge > button:focus, +div.listingblock > div.content > button:focus, +figure.highlight > button:focus { + opacity: 1; +} +div.highlighter-rouge:hover > button, +div.listingblock > div.content:hover > button, +figure.highlight:hover > button { + cursor: copy; + opacity: 1; +} + +div.highlighter-rouge div.highlight { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.highlighter-rouge pre.highlight, +div.highlighter-rouge code { + padding: 0; + margin: 0; + border: 0; +} + +div.listingblock { + margin-top: 0; + margin-bottom: 0.75rem; +} +div.listingblock div.content { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.listingblock div.content > pre, +div.listingblock code { + padding: 0; + margin: 0; + border: 0; +} + +figure.highlight pre, +figure.highlight :not(pre) > code { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} + +.highlight .table-wrapper { + padding: 0.75rem 0; + margin: 0; + border: 0; + box-shadow: none; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + min-width: 0; + padding: 0; + background-color: #31343f; + border: 0; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .highlight .table-wrapper td, + .highlight .table-wrapper pre { + font-size: 0.75rem !important; + } +} +.highlight .table-wrapper td.gl { + width: 1em; + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.highlight .table-wrapper pre { + margin: 0; + line-height: 2; +} + +.code-example, +.listingblock > .title { + padding: 0.75rem; + margin-bottom: 0.75rem; + overflow: auto; + border: 1px solid #44434d; + border-radius: 4px; +} +.code-example + .highlighter-rouge, +.code-example + .sectionbody .listingblock, +.code-example + .content, +.code-example + figure.highlight, +.listingblock > .title + .highlighter-rouge, +.listingblock > .title + .sectionbody .listingblock, +.listingblock > .title + .content, +.listingblock > .title + figure.highlight { + position: relative; + margin-top: -1rem; + border-right: 1px solid #44434d; + border-bottom: 1px solid #44434d; + border-left: 1px solid #44434d; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +code.language-mermaid { + padding: 0; + background-color: inherit; + border: 0; +} + +.highlight, +pre.highlight { + background: #31343f; + color: #dee2f7; +} + +.highlight pre { + background: #31343f; +} + +.text-grey-dk-000 { + color: #f5f6fa !important; +} + +.text-grey-dk-100 { + color: #eeebee !important; +} + +.text-grey-dk-200 { + color: #ecebed !important; +} + +.text-grey-dk-250 { + color: #302d36 !important; +} + +.text-grey-dk-300, .staffer .staffer-badge { + color: #e6e1e8 !important; +} + +.text-grey-lt-000 { + color: #959396 !important; +} + +.text-grey-lt-100 { + color: #5c5962 !important; +} + +.text-grey-lt-200 { + color: #44434d !important; +} + +.text-grey-lt-300 { + color: #27262b !important; +} + +.text-blue-000 { + color: #2c84fa !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #264caf !important; +} + +.text-blue-300 { + color: #183385 !important; +} + +.text-green-000 { + color: #41d693 !important; +} + +.text-green-100 { + color: #11b584 !important; +} + +.text-green-200 { + color: #009c7b !important; +} + +.text-green-300 { + color: #026e57 !important; +} + +.text-purple-000 { + color: #7253ed !important; +} + +.text-purple-100 { + color: #5e41d0 !important; +} + +.text-purple-200 { + color: #4e26af !important; +} + +.text-purple-300 { + color: #381885 !important; +} + +.text-yellow-000 { + color: #ffeb82 !important; +} + +.text-yellow-100 { + color: #fadf50 !important; +} + +.text-yellow-200 { + color: #f7d12e !important; +} + +.text-yellow-300 { + color: #e7af06 !important; +} + +.text-red-000 { + color: #f77e7e !important; +} + +.text-red-100 { + color: #f96e65 !important; +} + +.text-red-200 { + color: #e94c4c !important; +} + +.text-red-300 { + color: #dd2e2e !important; +} + +.bg-grey-dk-000 { + background-color: #f5f6fa !important; +} + +.bg-grey-dk-100 { + background-color: #eeebee !important; +} + +.bg-grey-dk-200 { + background-color: #ecebed !important; +} + +.bg-grey-dk-250 { + background-color: #302d36 !important; +} + +.bg-grey-dk-300 { + background-color: #e6e1e8 !important; +} + +.bg-grey-lt-000 { + background-color: #959396 !important; +} + +.bg-grey-lt-100 { + background-color: #5c5962 !important; +} + +.bg-grey-lt-200, .staffer .staffer-badge { + background-color: #44434d !important; +} + +.bg-grey-lt-300 { + background-color: #27262b !important; +} + +.bg-blue-000 { + background-color: #2c84fa !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #264caf !important; +} + +.bg-blue-300 { + background-color: #183385 !important; +} + +.bg-green-000 { + background-color: #41d693 !important; +} + +.bg-green-100 { + background-color: #11b584 !important; +} + +.bg-green-200 { + background-color: #009c7b !important; +} + +.bg-green-300 { + background-color: #026e57 !important; +} + +.bg-purple-000 { + background-color: #7253ed !important; +} + +.bg-purple-100 { + background-color: #5e41d0 !important; +} + +.bg-purple-200 { + background-color: #4e26af !important; +} + +.bg-purple-300 { + background-color: #381885 !important; +} + +.bg-yellow-000 { + background-color: #ffeb82 !important; +} + +.bg-yellow-100 { + background-color: #fadf50 !important; +} + +.bg-yellow-200 { + background-color: #f7d12e !important; +} + +.bg-yellow-300 { + background-color: #e7af06 !important; +} + +.bg-red-000 { + background-color: #f77e7e !important; +} + +.bg-red-100 { + background-color: #f96e65 !important; +} + +.bg-red-200 { + background-color: #e94c4c !important; +} + +.bg-red-300 { + background-color: #dd2e2e !important; +} + +.d-block { + display: block !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-none { + display: none !important; +} + +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.flex-justify-start { + justify-content: flex-start !important; +} + +.flex-justify-end { + justify-content: flex-end !important; +} + +.flex-justify-between { + justify-content: space-between !important; +} + +.flex-justify-around { + justify-content: space-around !important; +} + +.v-align-baseline { + vertical-align: baseline !important; +} + +.v-align-bottom { + vertical-align: bottom !important; +} + +.v-align-middle { + vertical-align: middle !important; +} + +.v-align-text-bottom { + vertical-align: text-bottom !important; +} + +.v-align-text-top { + vertical-align: text-top !important; +} + +.v-align-top { + vertical-align: top !important; +} + +.fs-1 { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .fs-1 { + font-size: 0.625rem !important; + } +} + +.fs-2, .schedule .schedule-event .time, +.schedule .schedule-event .location, .schedule .schedule-time { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .fs-2, .schedule .schedule-event .time, + .schedule .schedule-event .location, .schedule .schedule-time { + font-size: 0.75rem !important; + } +} + +.fs-3, .schedule .schedule-event .name { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .fs-3, .schedule .schedule-event .name { + font-size: 0.875rem !important; + } +} + +.fs-4 { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .fs-4 { + font-size: 1rem !important; + } +} + +.fs-5 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + .fs-5 { + font-size: 1.125rem !important; + } +} + +.fs-6 { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .fs-6 { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +.fs-7 { + font-size: 1.5rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-7 { + font-size: 2rem !important; + } +} + +.fs-8 { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-8 { + font-size: 2.25rem !important; + } +} + +.fs-9 { + font-size: 2.25rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-9 { + font-size: 2.625rem !important; + } +} + +.fs-10 { + font-size: 2.625rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-10 { + font-size: 3rem !important; + } +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-700, .schedule .schedule-event .name { + font-weight: 700 !important; +} + +.lh-0 { + line-height: 0 !important; +} + +.lh-default { + line-height: 1.4; +} + +.lh-tight { + line-height: 1.25; +} + +.ls-5 { + letter-spacing: 0.05em !important; +} + +.ls-10 { + letter-spacing: 0.1em !important; +} + +.ls-0 { + letter-spacing: 0 !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.list-style-none { + padding: 0 !important; + margin: 0 !important; + list-style: none !important; +} +.list-style-none li::before { + display: none !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.mxn-0 { + margin-right: -0 !important; + margin-left: -0 !important; +} + +.mx-0-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.mxn-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; +} + +.mx-1-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.mxn-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; +} + +.mx-2-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.mxn-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; +} + +.mx-3-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4, details { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.mxn-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; +} + +.mx-4-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.mxn-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; +} + +.mx-5-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-6 { + margin: 2rem !important; +} + +.mt-6 { + margin-top: 2rem !important; +} + +.mr-6 { + margin-right: 2rem !important; +} + +.mb-6 { + margin-bottom: 2rem !important; +} + +.ml-6 { + margin-left: 2rem !important; +} + +.mx-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; +} + +.my-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; +} + +.mxn-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; +} + +.mx-6-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-7 { + margin: 2.5rem !important; +} + +.mt-7 { + margin-top: 2.5rem !important; +} + +.mr-7 { + margin-right: 2.5rem !important; +} + +.mb-7 { + margin-bottom: 2.5rem !important; +} + +.ml-7 { + margin-left: 2.5rem !important; +} + +.mx-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; +} + +.my-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; +} + +.mxn-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; +} + +.mx-7-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-8 { + margin: 3rem !important; +} + +.mt-8 { + margin-top: 3rem !important; +} + +.mr-8 { + margin-right: 3rem !important; +} + +.mb-8 { + margin-bottom: 3rem !important; +} + +.ml-8 { + margin-left: 3rem !important; +} + +.mx-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.my-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.mxn-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; +} + +.mx-8-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-9 { + margin: 3.5rem !important; +} + +.mt-9 { + margin-top: 3.5rem !important; +} + +.mr-9 { + margin-right: 3.5rem !important; +} + +.mb-9 { + margin-bottom: 3.5rem !important; +} + +.ml-9 { + margin-left: 3.5rem !important; +} + +.mx-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; +} + +.my-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; +} + +.mxn-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; +} + +.mx-9-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-10 { + margin: 4rem !important; +} + +.mt-10 { + margin-top: 4rem !important; +} + +.mr-10 { + margin-right: 4rem !important; +} + +.mb-10 { + margin-bottom: 4rem !important; +} + +.ml-10 { + margin-left: 4rem !important; +} + +.mx-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; +} + +.my-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; +} + +.mxn-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; +} + +.mx-10-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 20rem) { + .m-xs-0 { + margin: 0 !important; + } + .mt-xs-0 { + margin-top: 0 !important; + } + .mr-xs-0 { + margin-right: 0 !important; + } + .mb-xs-0 { + margin-bottom: 0 !important; + } + .ml-xs-0 { + margin-left: 0 !important; + } + .mx-xs-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xs-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xs-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 20rem) { + .m-xs-1 { + margin: 0.25rem !important; + } + .mt-xs-1 { + margin-top: 0.25rem !important; + } + .mr-xs-1 { + margin-right: 0.25rem !important; + } + .mb-xs-1 { + margin-bottom: 0.25rem !important; + } + .ml-xs-1 { + margin-left: 0.25rem !important; + } + .mx-xs-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xs-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xs-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-2 { + margin: 0.5rem !important; + } + .mt-xs-2 { + margin-top: 0.5rem !important; + } + .mr-xs-2 { + margin-right: 0.5rem !important; + } + .mb-xs-2 { + margin-bottom: 0.5rem !important; + } + .ml-xs-2 { + margin-left: 0.5rem !important; + } + .mx-xs-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xs-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xs-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-3 { + margin: 0.75rem !important; + } + .mt-xs-3 { + margin-top: 0.75rem !important; + } + .mr-xs-3 { + margin-right: 0.75rem !important; + } + .mb-xs-3 { + margin-bottom: 0.75rem !important; + } + .ml-xs-3 { + margin-left: 0.75rem !important; + } + .mx-xs-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xs-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xs-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-4 { + margin: 1rem !important; + } + .mt-xs-4 { + margin-top: 1rem !important; + } + .mr-xs-4 { + margin-right: 1rem !important; + } + .mb-xs-4 { + margin-bottom: 1rem !important; + } + .ml-xs-4 { + margin-left: 1rem !important; + } + .mx-xs-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xs-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xs-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-5 { + margin: 1.5rem !important; + } + .mt-xs-5 { + margin-top: 1.5rem !important; + } + .mr-xs-5 { + margin-right: 1.5rem !important; + } + .mb-xs-5 { + margin-bottom: 1.5rem !important; + } + .ml-xs-5 { + margin-left: 1.5rem !important; + } + .mx-xs-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xs-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xs-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-6 { + margin: 2rem !important; + } + .mt-xs-6 { + margin-top: 2rem !important; + } + .mr-xs-6 { + margin-right: 2rem !important; + } + .mb-xs-6 { + margin-bottom: 2rem !important; + } + .ml-xs-6 { + margin-left: 2rem !important; + } + .mx-xs-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xs-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xs-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-7 { + margin: 2.5rem !important; + } + .mt-xs-7 { + margin-top: 2.5rem !important; + } + .mr-xs-7 { + margin-right: 2.5rem !important; + } + .mb-xs-7 { + margin-bottom: 2.5rem !important; + } + .ml-xs-7 { + margin-left: 2.5rem !important; + } + .mx-xs-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xs-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xs-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-8 { + margin: 3rem !important; + } + .mt-xs-8 { + margin-top: 3rem !important; + } + .mr-xs-8 { + margin-right: 3rem !important; + } + .mb-xs-8 { + margin-bottom: 3rem !important; + } + .ml-xs-8 { + margin-left: 3rem !important; + } + .mx-xs-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xs-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xs-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-9 { + margin: 3.5rem !important; + } + .mt-xs-9 { + margin-top: 3.5rem !important; + } + .mr-xs-9 { + margin-right: 3.5rem !important; + } + .mb-xs-9 { + margin-bottom: 3.5rem !important; + } + .ml-xs-9 { + margin-left: 3.5rem !important; + } + .mx-xs-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xs-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xs-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-10 { + margin: 4rem !important; + } + .mt-xs-10 { + margin-top: 4rem !important; + } + .mr-xs-10 { + margin-right: 4rem !important; + } + .mb-xs-10 { + margin-bottom: 4rem !important; + } + .ml-xs-10 { + margin-left: 4rem !important; + } + .mx-xs-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xs-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xs-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0 { + margin-left: 0 !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-sm-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1 { + margin-left: 0.25rem !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-sm-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2 { + margin-left: 0.5rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-sm-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-3 { + margin: 0.75rem !important; + } + .mt-sm-3 { + margin-top: 0.75rem !important; + } + .mr-sm-3 { + margin-right: 0.75rem !important; + } + .mb-sm-3 { + margin-bottom: 0.75rem !important; + } + .ml-sm-3 { + margin-left: 0.75rem !important; + } + .mx-sm-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-sm-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-sm-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-4 { + margin: 1rem !important; + } + .mt-sm-4 { + margin-top: 1rem !important; + } + .mr-sm-4 { + margin-right: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1rem !important; + } + .ml-sm-4 { + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-sm-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-sm-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-5 { + margin: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 1.5rem !important; + } + .mr-sm-5 { + margin-right: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 1.5rem !important; + } + .ml-sm-5 { + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-sm-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-sm-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-6 { + margin: 2rem !important; + } + .mt-sm-6 { + margin-top: 2rem !important; + } + .mr-sm-6 { + margin-right: 2rem !important; + } + .mb-sm-6 { + margin-bottom: 2rem !important; + } + .ml-sm-6 { + margin-left: 2rem !important; + } + .mx-sm-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-sm-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-sm-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-7 { + margin: 2.5rem !important; + } + .mt-sm-7 { + margin-top: 2.5rem !important; + } + .mr-sm-7 { + margin-right: 2.5rem !important; + } + .mb-sm-7 { + margin-bottom: 2.5rem !important; + } + .ml-sm-7 { + margin-left: 2.5rem !important; + } + .mx-sm-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-sm-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-sm-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-8 { + margin: 3rem !important; + } + .mt-sm-8 { + margin-top: 3rem !important; + } + .mr-sm-8 { + margin-right: 3rem !important; + } + .mb-sm-8 { + margin-bottom: 3rem !important; + } + .ml-sm-8 { + margin-left: 3rem !important; + } + .mx-sm-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-sm-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-sm-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-9 { + margin: 3.5rem !important; + } + .mt-sm-9 { + margin-top: 3.5rem !important; + } + .mr-sm-9 { + margin-right: 3.5rem !important; + } + .mb-sm-9 { + margin-bottom: 3.5rem !important; + } + .ml-sm-9 { + margin-left: 3.5rem !important; + } + .mx-sm-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-sm-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-sm-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-10 { + margin: 4rem !important; + } + .mt-sm-10 { + margin-top: 4rem !important; + } + .mr-sm-10 { + margin-right: 4rem !important; + } + .mb-sm-10 { + margin-bottom: 4rem !important; + } + .ml-sm-10 { + margin-left: 4rem !important; + } + .mx-sm-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-sm-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-sm-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 50rem) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mr-md-0 { + margin-right: 0 !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0 { + margin-left: 0 !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-md-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 50rem) { + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1 { + margin-left: 0.25rem !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-md-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 50rem) { + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2 { + margin-left: 0.5rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-md-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-3 { + margin: 0.75rem !important; + } + .mt-md-3 { + margin-top: 0.75rem !important; + } + .mr-md-3 { + margin-right: 0.75rem !important; + } + .mb-md-3 { + margin-bottom: 0.75rem !important; + } + .ml-md-3 { + margin-left: 0.75rem !important; + } + .mx-md-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-md-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-md-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 50rem) { + .m-md-4 { + margin: 1rem !important; + } + .mt-md-4 { + margin-top: 1rem !important; + } + .mr-md-4 { + margin-right: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1rem !important; + } + .ml-md-4 { + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-md-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-md-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 50rem) { + .m-md-5 { + margin: 1.5rem !important; + } + .mt-md-5 { + margin-top: 1.5rem !important; + } + .mr-md-5 { + margin-right: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 1.5rem !important; + } + .ml-md-5 { + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-md-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-md-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-6 { + margin: 2rem !important; + } + .mt-md-6 { + margin-top: 2rem !important; + } + .mr-md-6 { + margin-right: 2rem !important; + } + .mb-md-6 { + margin-bottom: 2rem !important; + } + .ml-md-6 { + margin-left: 2rem !important; + } + .mx-md-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-md-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-md-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 50rem) { + .m-md-7 { + margin: 2.5rem !important; + } + .mt-md-7 { + margin-top: 2.5rem !important; + } + .mr-md-7 { + margin-right: 2.5rem !important; + } + .mb-md-7 { + margin-bottom: 2.5rem !important; + } + .ml-md-7 { + margin-left: 2.5rem !important; + } + .mx-md-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-md-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-md-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-8 { + margin: 3rem !important; + } + .mt-md-8 { + margin-top: 3rem !important; + } + .mr-md-8 { + margin-right: 3rem !important; + } + .mb-md-8 { + margin-bottom: 3rem !important; + } + .ml-md-8 { + margin-left: 3rem !important; + } + .mx-md-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-md-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-md-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 50rem) { + .m-md-9 { + margin: 3.5rem !important; + } + .mt-md-9 { + margin-top: 3.5rem !important; + } + .mr-md-9 { + margin-right: 3.5rem !important; + } + .mb-md-9 { + margin-bottom: 3.5rem !important; + } + .ml-md-9 { + margin-left: 3.5rem !important; + } + .mx-md-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-md-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-md-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-10 { + margin: 4rem !important; + } + .mt-md-10 { + margin-top: 4rem !important; + } + .mr-md-10 { + margin-right: 4rem !important; + } + .mb-md-10 { + margin-bottom: 4rem !important; + } + .ml-md-10 { + margin-left: 4rem !important; + } + .mx-md-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-md-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-md-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0 { + margin-left: 0 !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-lg-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1 { + margin-left: 0.25rem !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-lg-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2 { + margin-left: 0.5rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-lg-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-3 { + margin: 0.75rem !important; + } + .mt-lg-3 { + margin-top: 0.75rem !important; + } + .mr-lg-3 { + margin-right: 0.75rem !important; + } + .mb-lg-3 { + margin-bottom: 0.75rem !important; + } + .ml-lg-3 { + margin-left: 0.75rem !important; + } + .mx-lg-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-lg-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-lg-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-4 { + margin: 1rem !important; + } + .mt-lg-4 { + margin-top: 1rem !important; + } + .mr-lg-4 { + margin-right: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1rem !important; + } + .ml-lg-4 { + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-lg-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-lg-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-5 { + margin: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 1.5rem !important; + } + .mr-lg-5 { + margin-right: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 1.5rem !important; + } + .ml-lg-5 { + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-lg-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-lg-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-6 { + margin: 2rem !important; + } + .mt-lg-6 { + margin-top: 2rem !important; + } + .mr-lg-6 { + margin-right: 2rem !important; + } + .mb-lg-6 { + margin-bottom: 2rem !important; + } + .ml-lg-6 { + margin-left: 2rem !important; + } + .mx-lg-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-lg-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-lg-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-7 { + margin: 2.5rem !important; + } + .mt-lg-7 { + margin-top: 2.5rem !important; + } + .mr-lg-7 { + margin-right: 2.5rem !important; + } + .mb-lg-7 { + margin-bottom: 2.5rem !important; + } + .ml-lg-7 { + margin-left: 2.5rem !important; + } + .mx-lg-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-lg-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-lg-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-8 { + margin: 3rem !important; + } + .mt-lg-8 { + margin-top: 3rem !important; + } + .mr-lg-8 { + margin-right: 3rem !important; + } + .mb-lg-8 { + margin-bottom: 3rem !important; + } + .ml-lg-8 { + margin-left: 3rem !important; + } + .mx-lg-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-lg-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-lg-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-9 { + margin: 3.5rem !important; + } + .mt-lg-9 { + margin-top: 3.5rem !important; + } + .mr-lg-9 { + margin-right: 3.5rem !important; + } + .mb-lg-9 { + margin-bottom: 3.5rem !important; + } + .ml-lg-9 { + margin-left: 3.5rem !important; + } + .mx-lg-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-lg-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-lg-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-10 { + margin: 4rem !important; + } + .mt-lg-10 { + margin-top: 4rem !important; + } + .mr-lg-10 { + margin-right: 4rem !important; + } + .mb-lg-10 { + margin-bottom: 4rem !important; + } + .ml-lg-10 { + margin-left: 4rem !important; + } + .mx-lg-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-lg-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-lg-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0 { + margin-left: 0 !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xl-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1 { + margin-left: 0.25rem !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xl-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2 { + margin-left: 0.5rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xl-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-3 { + margin: 0.75rem !important; + } + .mt-xl-3 { + margin-top: 0.75rem !important; + } + .mr-xl-3 { + margin-right: 0.75rem !important; + } + .mb-xl-3 { + margin-bottom: 0.75rem !important; + } + .ml-xl-3 { + margin-left: 0.75rem !important; + } + .mx-xl-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xl-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xl-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-4 { + margin: 1rem !important; + } + .mt-xl-4 { + margin-top: 1rem !important; + } + .mr-xl-4 { + margin-right: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1rem !important; + } + .ml-xl-4 { + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xl-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xl-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-5 { + margin: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 1.5rem !important; + } + .mr-xl-5 { + margin-right: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 1.5rem !important; + } + .ml-xl-5 { + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xl-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xl-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-6 { + margin: 2rem !important; + } + .mt-xl-6 { + margin-top: 2rem !important; + } + .mr-xl-6 { + margin-right: 2rem !important; + } + .mb-xl-6 { + margin-bottom: 2rem !important; + } + .ml-xl-6 { + margin-left: 2rem !important; + } + .mx-xl-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xl-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xl-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-7 { + margin: 2.5rem !important; + } + .mt-xl-7 { + margin-top: 2.5rem !important; + } + .mr-xl-7 { + margin-right: 2.5rem !important; + } + .mb-xl-7 { + margin-bottom: 2.5rem !important; + } + .ml-xl-7 { + margin-left: 2.5rem !important; + } + .mx-xl-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xl-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xl-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-8 { + margin: 3rem !important; + } + .mt-xl-8 { + margin-top: 3rem !important; + } + .mr-xl-8 { + margin-right: 3rem !important; + } + .mb-xl-8 { + margin-bottom: 3rem !important; + } + .ml-xl-8 { + margin-left: 3rem !important; + } + .mx-xl-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xl-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xl-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-9 { + margin: 3.5rem !important; + } + .mt-xl-9 { + margin-top: 3.5rem !important; + } + .mr-xl-9 { + margin-right: 3.5rem !important; + } + .mb-xl-9 { + margin-bottom: 3.5rem !important; + } + .ml-xl-9 { + margin-left: 3.5rem !important; + } + .mx-xl-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xl-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xl-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-10 { + margin: 4rem !important; + } + .mt-xl-10 { + margin-top: 4rem !important; + } + .mr-xl-10 { + margin-right: 4rem !important; + } + .mb-xl-10 { + margin-bottom: 4rem !important; + } + .ml-xl-10 { + margin-left: 4rem !important; + } + .mx-xl-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xl-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xl-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 2rem !important; +} + +.pt-6 { + padding-top: 2rem !important; +} + +.pr-6 { + padding-right: 2rem !important; +} + +.pb-6 { + padding-bottom: 2rem !important; +} + +.pl-6 { + padding-left: 2rem !important; +} + +.px-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; +} + +.py-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; +} + +.p-7 { + padding: 2.5rem !important; +} + +.pt-7 { + padding-top: 2.5rem !important; +} + +.pr-7 { + padding-right: 2.5rem !important; +} + +.pb-7 { + padding-bottom: 2.5rem !important; +} + +.pl-7 { + padding-left: 2.5rem !important; +} + +.px-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; +} + +.py-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; +} + +.p-8 { + padding: 3rem !important; +} + +.pt-8 { + padding-top: 3rem !important; +} + +.pr-8 { + padding-right: 3rem !important; +} + +.pb-8 { + padding-bottom: 3rem !important; +} + +.pl-8 { + padding-left: 3rem !important; +} + +.px-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-9 { + padding: 3.5rem !important; +} + +.pt-9 { + padding-top: 3.5rem !important; +} + +.pr-9 { + padding-right: 3.5rem !important; +} + +.pb-9 { + padding-bottom: 3.5rem !important; +} + +.pl-9 { + padding-left: 3.5rem !important; +} + +.px-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; +} + +.py-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; +} + +.p-10 { + padding: 4rem !important; +} + +.pt-10 { + padding-top: 4rem !important; +} + +.pr-10 { + padding-right: 4rem !important; +} + +.pb-10 { + padding-bottom: 4rem !important; +} + +.pl-10 { + padding-left: 4rem !important; +} + +.px-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; +} + +.py-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; +} + +@media (min-width: 20rem) { + .p-xs-0 { + padding: 0 !important; + } + .pt-xs-0 { + padding-top: 0 !important; + } + .pr-xs-0 { + padding-right: 0 !important; + } + .pb-xs-0 { + padding-bottom: 0 !important; + } + .pl-xs-0 { + padding-left: 0 !important; + } + .px-xs-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xs-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xs-1 { + padding: 0.25rem !important; + } + .pt-xs-1 { + padding-top: 0.25rem !important; + } + .pr-xs-1 { + padding-right: 0.25rem !important; + } + .pb-xs-1 { + padding-bottom: 0.25rem !important; + } + .pl-xs-1 { + padding-left: 0.25rem !important; + } + .px-xs-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xs-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xs-2 { + padding: 0.5rem !important; + } + .pt-xs-2 { + padding-top: 0.5rem !important; + } + .pr-xs-2 { + padding-right: 0.5rem !important; + } + .pb-xs-2 { + padding-bottom: 0.5rem !important; + } + .pl-xs-2 { + padding-left: 0.5rem !important; + } + .px-xs-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xs-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xs-3 { + padding: 0.75rem !important; + } + .pt-xs-3 { + padding-top: 0.75rem !important; + } + .pr-xs-3 { + padding-right: 0.75rem !important; + } + .pb-xs-3 { + padding-bottom: 0.75rem !important; + } + .pl-xs-3 { + padding-left: 0.75rem !important; + } + .px-xs-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xs-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xs-4 { + padding: 1rem !important; + } + .pt-xs-4 { + padding-top: 1rem !important; + } + .pr-xs-4 { + padding-right: 1rem !important; + } + .pb-xs-4 { + padding-bottom: 1rem !important; + } + .pl-xs-4 { + padding-left: 1rem !important; + } + .px-xs-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xs-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xs-5 { + padding: 1.5rem !important; + } + .pt-xs-5 { + padding-top: 1.5rem !important; + } + .pr-xs-5 { + padding-right: 1.5rem !important; + } + .pb-xs-5 { + padding-bottom: 1.5rem !important; + } + .pl-xs-5 { + padding-left: 1.5rem !important; + } + .px-xs-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xs-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xs-6 { + padding: 2rem !important; + } + .pt-xs-6 { + padding-top: 2rem !important; + } + .pr-xs-6 { + padding-right: 2rem !important; + } + .pb-xs-6 { + padding-bottom: 2rem !important; + } + .pl-xs-6 { + padding-left: 2rem !important; + } + .px-xs-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xs-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xs-7 { + padding: 2.5rem !important; + } + .pt-xs-7 { + padding-top: 2.5rem !important; + } + .pr-xs-7 { + padding-right: 2.5rem !important; + } + .pb-xs-7 { + padding-bottom: 2.5rem !important; + } + .pl-xs-7 { + padding-left: 2.5rem !important; + } + .px-xs-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xs-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xs-8 { + padding: 3rem !important; + } + .pt-xs-8 { + padding-top: 3rem !important; + } + .pr-xs-8 { + padding-right: 3rem !important; + } + .pb-xs-8 { + padding-bottom: 3rem !important; + } + .pl-xs-8 { + padding-left: 3rem !important; + } + .px-xs-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xs-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xs-9 { + padding: 3.5rem !important; + } + .pt-xs-9 { + padding-top: 3.5rem !important; + } + .pr-xs-9 { + padding-right: 3.5rem !important; + } + .pb-xs-9 { + padding-bottom: 3.5rem !important; + } + .pl-xs-9 { + padding-left: 3.5rem !important; + } + .px-xs-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xs-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xs-10 { + padding: 4rem !important; + } + .pt-xs-10 { + padding-top: 4rem !important; + } + .pr-xs-10 { + padding-right: 4rem !important; + } + .pb-xs-10 { + padding-bottom: 4rem !important; + } + .pl-xs-10 { + padding-left: 4rem !important; + } + .px-xs-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xs-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 31.25rem) { + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0 { + padding-left: 0 !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1 { + padding-left: 0.25rem !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2 { + padding-left: 0.5rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-sm-3 { + padding: 0.75rem !important; + } + .pt-sm-3 { + padding-top: 0.75rem !important; + } + .pr-sm-3 { + padding-right: 0.75rem !important; + } + .pb-sm-3 { + padding-bottom: 0.75rem !important; + } + .pl-sm-3 { + padding-left: 0.75rem !important; + } + .px-sm-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-sm-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-sm-4 { + padding: 1rem !important; + } + .pt-sm-4 { + padding-top: 1rem !important; + } + .pr-sm-4 { + padding-right: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1rem !important; + } + .pl-sm-4 { + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-sm-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-sm-5 { + padding: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 1.5rem !important; + } + .pr-sm-5 { + padding-right: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 1.5rem !important; + } + .pl-sm-5 { + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-sm-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-sm-6 { + padding: 2rem !important; + } + .pt-sm-6 { + padding-top: 2rem !important; + } + .pr-sm-6 { + padding-right: 2rem !important; + } + .pb-sm-6 { + padding-bottom: 2rem !important; + } + .pl-sm-6 { + padding-left: 2rem !important; + } + .px-sm-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-sm-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-sm-7 { + padding: 2.5rem !important; + } + .pt-sm-7 { + padding-top: 2.5rem !important; + } + .pr-sm-7 { + padding-right: 2.5rem !important; + } + .pb-sm-7 { + padding-bottom: 2.5rem !important; + } + .pl-sm-7 { + padding-left: 2.5rem !important; + } + .px-sm-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-sm-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-sm-8 { + padding: 3rem !important; + } + .pt-sm-8 { + padding-top: 3rem !important; + } + .pr-sm-8 { + padding-right: 3rem !important; + } + .pb-sm-8 { + padding-bottom: 3rem !important; + } + .pl-sm-8 { + padding-left: 3rem !important; + } + .px-sm-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-sm-9 { + padding: 3.5rem !important; + } + .pt-sm-9 { + padding-top: 3.5rem !important; + } + .pr-sm-9 { + padding-right: 3.5rem !important; + } + .pb-sm-9 { + padding-bottom: 3.5rem !important; + } + .pl-sm-9 { + padding-left: 3.5rem !important; + } + .px-sm-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-sm-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-sm-10 { + padding: 4rem !important; + } + .pt-sm-10 { + padding-top: 4rem !important; + } + .pr-sm-10 { + padding-right: 4rem !important; + } + .pb-sm-10 { + padding-bottom: 4rem !important; + } + .pl-sm-10 { + padding-left: 4rem !important; + } + .px-sm-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-sm-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 50rem) { + .p-md-0 { + padding: 0 !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pr-md-0 { + padding-right: 0 !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0 { + padding-left: 0 !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1 { + padding-left: 0.25rem !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2 { + padding-left: 0.5rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-md-3 { + padding: 0.75rem !important; + } + .pt-md-3 { + padding-top: 0.75rem !important; + } + .pr-md-3 { + padding-right: 0.75rem !important; + } + .pb-md-3 { + padding-bottom: 0.75rem !important; + } + .pl-md-3 { + padding-left: 0.75rem !important; + } + .px-md-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-md-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-md-4 { + padding: 1rem !important; + } + .pt-md-4 { + padding-top: 1rem !important; + } + .pr-md-4 { + padding-right: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1rem !important; + } + .pl-md-4 { + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-md-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-md-5 { + padding: 1.5rem !important; + } + .pt-md-5 { + padding-top: 1.5rem !important; + } + .pr-md-5 { + padding-right: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 1.5rem !important; + } + .pl-md-5 { + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-md-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-md-6 { + padding: 2rem !important; + } + .pt-md-6 { + padding-top: 2rem !important; + } + .pr-md-6 { + padding-right: 2rem !important; + } + .pb-md-6 { + padding-bottom: 2rem !important; + } + .pl-md-6 { + padding-left: 2rem !important; + } + .px-md-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-md-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-md-7 { + padding: 2.5rem !important; + } + .pt-md-7 { + padding-top: 2.5rem !important; + } + .pr-md-7 { + padding-right: 2.5rem !important; + } + .pb-md-7 { + padding-bottom: 2.5rem !important; + } + .pl-md-7 { + padding-left: 2.5rem !important; + } + .px-md-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-md-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-md-8 { + padding: 3rem !important; + } + .pt-md-8 { + padding-top: 3rem !important; + } + .pr-md-8 { + padding-right: 3rem !important; + } + .pb-md-8 { + padding-bottom: 3rem !important; + } + .pl-md-8 { + padding-left: 3rem !important; + } + .px-md-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-md-9 { + padding: 3.5rem !important; + } + .pt-md-9 { + padding-top: 3.5rem !important; + } + .pr-md-9 { + padding-right: 3.5rem !important; + } + .pb-md-9 { + padding-bottom: 3.5rem !important; + } + .pl-md-9 { + padding-left: 3.5rem !important; + } + .px-md-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-md-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-md-10 { + padding: 4rem !important; + } + .pt-md-10 { + padding-top: 4rem !important; + } + .pr-md-10 { + padding-right: 4rem !important; + } + .pb-md-10 { + padding-bottom: 4rem !important; + } + .pl-md-10 { + padding-left: 4rem !important; + } + .px-md-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-md-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 66.5rem) { + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0 { + padding-left: 0 !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1 { + padding-left: 0.25rem !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2 { + padding-left: 0.5rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-lg-3 { + padding: 0.75rem !important; + } + .pt-lg-3 { + padding-top: 0.75rem !important; + } + .pr-lg-3 { + padding-right: 0.75rem !important; + } + .pb-lg-3 { + padding-bottom: 0.75rem !important; + } + .pl-lg-3 { + padding-left: 0.75rem !important; + } + .px-lg-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-lg-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-lg-4 { + padding: 1rem !important; + } + .pt-lg-4 { + padding-top: 1rem !important; + } + .pr-lg-4 { + padding-right: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1rem !important; + } + .pl-lg-4 { + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-lg-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-lg-5 { + padding: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 1.5rem !important; + } + .pr-lg-5 { + padding-right: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 1.5rem !important; + } + .pl-lg-5 { + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-lg-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-lg-6 { + padding: 2rem !important; + } + .pt-lg-6 { + padding-top: 2rem !important; + } + .pr-lg-6 { + padding-right: 2rem !important; + } + .pb-lg-6 { + padding-bottom: 2rem !important; + } + .pl-lg-6 { + padding-left: 2rem !important; + } + .px-lg-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-lg-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-lg-7 { + padding: 2.5rem !important; + } + .pt-lg-7 { + padding-top: 2.5rem !important; + } + .pr-lg-7 { + padding-right: 2.5rem !important; + } + .pb-lg-7 { + padding-bottom: 2.5rem !important; + } + .pl-lg-7 { + padding-left: 2.5rem !important; + } + .px-lg-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-lg-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-lg-8 { + padding: 3rem !important; + } + .pt-lg-8 { + padding-top: 3rem !important; + } + .pr-lg-8 { + padding-right: 3rem !important; + } + .pb-lg-8 { + padding-bottom: 3rem !important; + } + .pl-lg-8 { + padding-left: 3rem !important; + } + .px-lg-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-lg-9 { + padding: 3.5rem !important; + } + .pt-lg-9 { + padding-top: 3.5rem !important; + } + .pr-lg-9 { + padding-right: 3.5rem !important; + } + .pb-lg-9 { + padding-bottom: 3.5rem !important; + } + .pl-lg-9 { + padding-left: 3.5rem !important; + } + .px-lg-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-lg-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-lg-10 { + padding: 4rem !important; + } + .pt-lg-10 { + padding-top: 4rem !important; + } + .pr-lg-10 { + padding-right: 4rem !important; + } + .pb-lg-10 { + padding-bottom: 4rem !important; + } + .pl-lg-10 { + padding-left: 4rem !important; + } + .px-lg-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-lg-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 87.5rem) { + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0 { + padding-left: 0 !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1 { + padding-left: 0.25rem !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2 { + padding-left: 0.5rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xl-3 { + padding: 0.75rem !important; + } + .pt-xl-3 { + padding-top: 0.75rem !important; + } + .pr-xl-3 { + padding-right: 0.75rem !important; + } + .pb-xl-3 { + padding-bottom: 0.75rem !important; + } + .pl-xl-3 { + padding-left: 0.75rem !important; + } + .px-xl-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xl-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xl-4 { + padding: 1rem !important; + } + .pt-xl-4 { + padding-top: 1rem !important; + } + .pr-xl-4 { + padding-right: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1rem !important; + } + .pl-xl-4 { + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xl-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xl-5 { + padding: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 1.5rem !important; + } + .pr-xl-5 { + padding-right: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 1.5rem !important; + } + .pl-xl-5 { + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xl-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xl-6 { + padding: 2rem !important; + } + .pt-xl-6 { + padding-top: 2rem !important; + } + .pr-xl-6 { + padding-right: 2rem !important; + } + .pb-xl-6 { + padding-bottom: 2rem !important; + } + .pl-xl-6 { + padding-left: 2rem !important; + } + .px-xl-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xl-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xl-7 { + padding: 2.5rem !important; + } + .pt-xl-7 { + padding-top: 2.5rem !important; + } + .pr-xl-7 { + padding-right: 2.5rem !important; + } + .pb-xl-7 { + padding-bottom: 2.5rem !important; + } + .pl-xl-7 { + padding-left: 2.5rem !important; + } + .px-xl-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xl-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xl-8 { + padding: 3rem !important; + } + .pt-xl-8 { + padding-top: 3rem !important; + } + .pr-xl-8 { + padding-right: 3rem !important; + } + .pb-xl-8 { + padding-bottom: 3rem !important; + } + .pl-xl-8 { + padding-left: 3rem !important; + } + .px-xl-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xl-9 { + padding: 3.5rem !important; + } + .pt-xl-9 { + padding-top: 3.5rem !important; + } + .pr-xl-9 { + padding-right: 3.5rem !important; + } + .pb-xl-9 { + padding-bottom: 3.5rem !important; + } + .pl-xl-9 { + padding-left: 3.5rem !important; + } + .px-xl-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xl-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xl-10 { + padding: 4rem !important; + } + .pt-xl-10 { + padding-top: 4rem !important; + } + .pr-xl-10 { + padding-right: 4rem !important; + } + .pb-xl-10 { + padding-bottom: 4rem !important; + } + .pl-xl-10 { + padding-left: 4rem !important; + } + .px-xl-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xl-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media print { + .site-footer, + .site-button, + #edit-this-page, + #back-to-top, + .site-nav, + .main-header { + display: none !important; + } + .side-bar { + width: 100%; + height: auto; + border-right: 0 !important; + } + .site-header { + border-bottom: 1px solid #44434d; + } + .site-title { + font-size: 1rem !important; + font-weight: 700 !important; + } + .text-small { + font-size: 8pt !important; + } + pre.highlight { + border: 1px solid #44434d; + } + .main { + max-width: none; + margin-left: 0; + } +} +a.skip-to-main { + left: -999px; + position: absolute; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; + z-index: -999; +} + +a.skip-to-main:focus, +a.skip-to-main:active { + color: #406FFE; + background-color: #0C0A0E; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #002676; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #0C0A0E; +} + +.main-content .module, +.module, .announcement { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05); + margin: 1rem -1rem; + display: flex; + flex-direction: column; + min-width: 0; + padding: 0 1rem; + position: relative; + word-wrap: break-word; +} +@media (min-width: 50rem) { + .main-content .module, + .module, .announcement { + border-radius: 4px; + margin: 1rem 0; + } +} +.module > :first-child, .announcement > :first-child { + border-top: none !important; +} +.module > :last-child, .announcement > :last-child { + border-bottom: none !important; +} +.module .label, +.module .staffer .staffer-badge, +.staffer .module .staffer-badge, .announcement .label, .announcement .staffer .staffer-badge, .staffer .announcement .staffer-badge { + border-radius: 4px; + margin-left: 0; + user-select: none; +} + +.main-content .module h1:first-child, +.main-content .module h2:first-child, +.main-content .module h3:first-child, +.main-content .module h4:first-child, +.main-content .module h5:first-child, +.main-content .module h6:first-child, +.module h1:first-child, +.module h2:first-child, +.module h3:first-child, +.module h4:first-child, +.module h5:first-child, +.module h6:first-child { + margin-top: 1rem; +} +.main-content .module > dl, +.module > dl { + border-bottom: 1px solid #44434d; + border-top: 1px solid #44434d; + display: grid; + grid-template-columns: max-content 1fr; + margin: 0.5rem -1rem; +} +.main-content .module > dl:first-child, +.module > dl:first-child { + margin-top: 0; +} +.main-content .module > dl:last-child, +.module > dl:last-child { + margin-bottom: 0; +} +@media (min-width: 66.5rem) { + .main-content .module > dl, + .module > dl { + grid-template-columns: 1fr 7fr; + } +} +.main-content .module > dl > dd, .main-content .module > dl > dt, +.module > dl > dd, +.module > dl > dt { + margin: 0; + padding: 0.5rem; +} +@media (min-width: 31.25rem) { + .main-content .module > dl > dd, .main-content .module > dl > dt, + .module > dl > dd, + .module > dl > dt { + padding: 0.5rem 1rem; + } +} +.main-content .module > dl > dt, +.module > dl > dt { + border-top: 1px solid #44434d; + font-weight: normal; + text-align: right; +} +.main-content .module > dl > dt + dd, +.module > dl > dt + dd { + border-top: 1px solid #44434d; +} +.main-content .module > dl > dt:first-child, +.module > dl > dt:first-child { + border-top: none; +} +.main-content .module > dl > dt:first-child + dd, +.module > dl > dt:first-child + dd { + border-top: none; +} +.main-content .module > dl > dt::after, +.module > dl > dt::after { + content: ":"; +} +.main-content .module > dl > dd + dd, +.module > dl > dd + dd { + padding-top: 0; +} +.main-content .module > dl > dd ol, .main-content .module > dl > dd ul, .main-content .module > dl > dd dl, +.module > dl > dd ol, +.module > dl > dd ul, +.module > dl > dd dl { + margin: 0; +} +.main-content .module > dl > dd dl, +.module > dl > dd dl { + display: flex; + flex-direction: column; +} +@media (min-width: 31.25rem) { + .main-content .module > dl > dd dl, + .module > dl > dd dl { + flex-direction: row; + } +} +.main-content .module > dl > dd dl dt, +.module > dl > dd dl dt { + flex: 0 0 62.5%; + margin: 0; +} +.main-content .module > dl > dd dl dd, +.module > dl > dd dl dd { + margin: 0; +} + +.schedule { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05); + margin: 1rem -1rem; + overflow-x: scroll; + position: relative; +} +@media (min-width: 50rem) { + .schedule { + border-radius: 4px; + margin: 1rem 0; + } +} +.schedule li::before { + display: none; +} +.schedule ul.schedule-timeline, +.schedule ul.schedule-group, +.schedule ul.schedule-events { + margin-top: 0; + padding-left: 0; +} +.schedule ul.schedule-timeline { + margin: 40px auto 0; + position: absolute; + width: 100%; +} +.schedule .schedule-time { + color: #ecebed; + height: 40px; + margin: 0; + padding: 0.5rem; + position: relative; +} +.schedule .schedule-time::after { + background-color: #44434d; + content: ""; + height: 1px; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.schedule .schedule-group { + display: flex; + margin-bottom: 0; + position: relative; +} +.schedule .schedule-day { + border-left: 1px solid #44434d; + flex: 1 0 0; + margin: 0; + min-width: 120px; +} +.schedule .schedule-day:first-of-type { + border-left: 0; +} +.schedule h2.schedule-header { + align-items: center; + display: flex; + font-size: 18px !important; + height: 40px; + justify-content: center; + margin: 0; +} +.schedule .schedule-events { + display: flex; + padding: 0; + position: relative; +} +.schedule .schedule-event { + background-color: #f5f6fa; + border-radius: 4px; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), inset 0 -3px 0 rgba(0, 0, 0, 0.2); + color: #fff; + float: left; + height: 100%; + margin: 0; + padding: 0.25rem 0.5rem; + position: absolute; + width: 100%; +} +.schedule .schedule-event.lecture { + background-color: #27262b; + color: #e6e1e8; +} +.schedule .schedule-event.section { + background-color: #3f17dc; +} +.schedule .schedule-event.office-hours { + background-color: #006953; +} + +.staffer { + display: flex; + margin: 1rem 0; +} +.staffer .staffer-image { + border-radius: 50%; + height: 100px; + margin-right: 1rem; + width: auto; +} +.staffer p, +.staffer .staffer-name { + margin: 0.25rem !important; +} +.staffer p .anchor-heading, +.staffer .staffer-name .anchor-heading { + width: 1.8rem; + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.staffer .staffer-badge { + -webkit-user-select: none; + user-select: none; +} +.staffer .staffer-meta { + color: #e6e1e8; +} + +html { + font-size: 16px; +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #fff; + background-color: #0C0A0E; + overflow-wrap: break-word; +} + +a, +.main-content .anchor-heading svg { + color: #406FFE; +} +a:hover, a:focus, +.main-content .anchor-heading svg:hover, +.main-content .anchor-heading svg:focus { + color: #0d49fe; +} + +a:not([class]):hover { + text-decoration-color: #a5bcff; +} + +h1, h2, h3, h4, h5, h6, +.serif { + font-family: "Source Serif 4", "Georiga", "Baskerville", serif; +} + +.label-green:not(g) { + background-color: #026e57; +} + +.label-red:not(g) { + background-color: #dd2e2e; +} + +code { + padding: 0.2em 0.4em; + border: none; +} + +iframe { + max-width: 100%; +} + +summary { + width: 100%; +} + +.main-content-wrap { + max-width: 1200px; + margin: auto; +} + +.main-content dl { + display: block; + grid-template-columns: none; +} +.main-content dt { + font-weight: 700; + text-align: start; +} +.main-content dt::after { + content: normal; +} +.main-content dd { + font-weight: normal; +} +.main-content dd + dt { + margin-top: 1em; +} + +.text-lighter { + color: #cccccc; +} + +a[target=_blank]::after { + font-family: "Font Awesome 6 Free"; + font-weight: 900; + content: "\f08e"; + padding: 0 0.25rem; +} + +/*# sourceMappingURL=just-the-docs-dark.css.map */ \ No newline at end of file diff --git a/_site/assets/css/just-the-docs-dark.css.map b/_site/assets/css/just-the-docs-dark.css.map new file mode 100644 index 0000000..34afc65 --- /dev/null +++ b/_site/assets/css/just-the-docs-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/snytax_highliters/a11y-light.css","../../_sass/berkeley/berkeley.scss","../../_sass/snytax_highliters/a11y-dark.css","../../_sass/color_schemes/dark.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/vendor/normalize.scss/normalize.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/base.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/_variables.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/layout.scss","../../_sass/berkeley/variables.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/content.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/navigation.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/labels.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/buttons.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_buttons.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/search.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/tables.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/code.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_colors.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_lists.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_spacing.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/print.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/skiptomain.scss","just-the-docs-dark.scss","../../_sass/just-the-class/card.scss","../../_sass/just-the-class/module.scss","../../_sass/just-the-class/schedule.scss","../../_sass/just-the-class/staffer.scss"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;ACCQ;ADCR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;;;AAGF;EACE;;;AEtIF;AACA;AACA;AACA;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;;;AAGF;EACE;;;AC/EF;EACE;;;ACxDF;AAEA;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AC1VF;EACE,cFEa;;;AECf;EACE;;;AAGF;EACE;;ACmBA;EACE;;AClBA;EFHJ;ICyBI;;;;ADnBJ;EACE,aGfiB;EHgBjB;EACA,aGbiB;EHcjB,OGQM;EHPN,kBFMY;EELZ;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;EACA,aG1CyB;EH2CzB,OGjBY;;;AHoBd;EACE;EACA;;;AAGF;EACE,OF1BW;EE2BX;;;AAGF;EACE;EACA,uBGnCY;EHoCZ;;AAEA;EACE;;;AAIJ;EACE,aGvEiB;EHwEjB;EACA,aGvEiB;;;AH0EnB;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,kBGnEY;EHoEZ;;;AAIF;EACE;EAGA;EACA;EACA;EACA;;;AI7GF;EACE;EACA;EACA;EACA,kBNsBY;;AIdV;EEZJ;IAOI;IACA;IACA,ODwFW;ICvFX;IACA;IACA;;;AFAA;EEZJ;IAgBI;IACA,WCGQ;;;AHRR;EEQF;IAEI,aD2ES;;;ADrFX;EEQF;IAQI;;;AAOF;EACE;EACA,kBNXQ;;AIdV;EEuBA;IAKI;IACA,kBNfM;;;AMkBR;EACE;;AFjCJ;EEgCE;IAII;;;;AAOV;EACE;;AF5CE;EE2CJ;IAII;IACA,WC1DY;;;;AD8DhB;EACE,aDaK;ECZL,gBDYK;EDvDL,eCuDK;EDtDL,cCsDK;;ADlEH;EEoDJ;IFrCI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEoDJ;IAOI,aDSG;ICRH,gBDQG;;;;ACJP;EACE;EACA;;AFlEE;EEgEJ;IAKI;IACA;IACA,QDmBY;;;;ACfhB;AAAA;AAAA;EAGE;;AF9EE;EE2EJ;AAAA;AAAA;IAMI,OCzEQ;;;;AD6EZ;EACE;;AAEA;EACE;;AFzFA;EEqFJ;IAQI;IACA,aDxBG;ICyBH,gBD7BG;IC8BH;IACA;;;;AAIJ;EACE;EACA,YDbc;ECcd;;AFxGE;EEqGJ;IAMI,QDjBY;ICkBZ,YDlBY;ICmBZ;;;;AAIJ;EACE;EACA;EACA;EACA;EACA,aDrDK;ECsDL,gBDtDK;ECuDL,ODnGY;EDVZ,eCuDK;EDtDL,cCsDK;;ADlEH;EEiHJ;IFlGI,eCqDG;IDpDH,cCoDG;;;AF/BL;EACE;;ACtCA;EEiHJ;IHvEI;IACA,aEhDuB;;;ADKvB;EEiHJ;IAcI,aD/DG;ICgEH,gBDhEG;;;;AC+EP;EACE;EACA;EACA,SDhFK;ECiFL;;;AFnJE;EEuJF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBDzGM;EC0GN;;AFlLE;EE+KJ;IAMI;IACA;;;;AAMJ;EACE;EACA;EACA;EACA,aD9HK;EC+HL,gBD/HK;ECgIL,ONlKY;EIrBZ,eCuDK;EDtDL,cCsDK;;ADlEH;EE4LJ;IF7KI,eCqDG;IDpDH,cCoDG;;;AFvEL;EACE;;ACEA;EE4LJ;IH1LI;;;ACFA;EE4LJ;IAaI;IACA;;;;AAIJ;EACE,OD5IK;EC6IL,QD7IK;EC8IL,ON5LW;;;AQ9Bb;EACE,aHEoB;;AGApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YH+CC;;AG3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,ORCM;EQAN;EACA;;AL1BN;EACE;;ACRA;EI2BE;ILfF;;;ACZA;EI2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OR7BM;EQ8BN;;AAMJ;EACE;;AAIJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAmBE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAKN;EACE;EACA;EACA,OHnFG;EGoFH;EACA,eHzFG;EG0FH,cH1FG;EG2FH;;AJ1JA;EImJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,ORhJO;EQiJP;;AAYF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE,YH9JG;;;AI3EP;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;ANoBF;EACE;;AClBA;EKLF;IN2BE;;;ACtBA;EDOF;IACE;;;ACRA;EKLF;INiBE;;;AMPA;EACE;EACA,YJ+DC;EI9DD,aJuDC;EItDD,gBJsDC;EIrDD;EAEE,eJ0DD;EIzDC,cJqDD;;ADlEH;EKKA;IAeI,YJgDD;II/CC;IAEE,eJ6CH;II5CG,cJ4CH;;;AIrCD;EACE,OJkCD;EIjCC,QJiCD;EIhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OJWC;EIVD,QJUC;EITD;EACA,OTzCO;;AIrBT;EKqDA;IAYI,OJGD;IIFC,QJED;IIDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cJtBC;EIuBD;;AAEA;EACE;;AAEA;EACE,OJ9EI;;AIiFN;EACE,OJlFI;;AIwFR;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;;AN/HA;EACE;;ACEA;EKuHJ;INrHI;;;ACFA;EKuHJ;IASI;IACA,YJ/DG;IIgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OT9HG;;ASiIL;EACE,OTlIG;;;AS2Ib;EACE;EACA;;ANrKA;EACE;;ACEA;EKgKJ;IN9JI;;;AMmKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;ALjLA;EKgKJ;IAqBI,eJnHG;;;;ADlEH;EK2LJ;IAEI;;;;AAIJ;EACE;EACA,eJlIK;EImIL;;;AAGF;EACE;;AN3MA;EACE;;ACEA;EKuMJ;INrMI;;;AMyMF;EACE;;AAGF;EACE;EACA,cJjJG;EIkJH,aJlJG;EImJH,OTnLU;ESoLV;;AAIA;EACE;;;ACpON;AAAA;EAEE;;APoEA;AAAA;EACE;EACA,aElEuB;;ADKvB;EMXJ;AAAA;IP4EI;;;;AA5BF;AAAA;AAAA;EACE;;ACtCA;EMJJ;AAAA;AAAA;IP8CI;IACA,aEhDuB;;;;AFgCzB;AAAA;AAAA;AAAA;EACE;;AC5BA;EMEJ;AAAA;AAAA;AAAA;IP8BI;;;;AOzBJ;AAAA;EAEE;EACA;EACA;;APdA;AAAA;EACE;;ACEA;EMOJ;AAAA;IPLI;;;;AOcJ;EACE;;;APVA;AAAA;AAAA;EACE;;ACRA;EMoBJ;AAAA;AAAA;IPRI;;;;AAfF;AAAA;EACE;;ACEA;EMyBJ;AAAA;IPvBI;;;;AALF;EACE;;ACEA;EM8BJ;IP5BI;;;;AOgCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cNoEK;EMnEL,aNmEK;EMlEL,ONiBM;EMhBN;EACA;EACA,kBN6BS;EM5BT;;ARLA;AAAA;EACE;;ACEA;EORJ;AAAA;IRUI;;;;AQKJ;EACE,kBN2BU;;;AMxBZ;EACE,kBNcW;;;AMXb;EACE,kBN2BQ;;;AMxBV;EACE,OXcY;EWbZ,kBNkBW;;;AOlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OZuBW;EYtBX;EACA;EACA;EACA,kBZgCY;EY/BZ;EACA,ePyEc;EOxEd,YACE;EAEF;;AAEA;EACE;EACA;EACA;;AAGF;EAEE;;AAGF;EAEE;;AAGF;EAIE;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;AAKA;EAEE;EACA;EACA;EACA;EACA;;;AAKN;EACE,OZvCW;EYwCX;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QTgFM;ES/EN,STuEK;EStEL;;AVME;EUZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QT8DK;ES7DL;EACA,eTmEc;ESlEd,YACE;EAEF;;AVdE;EUKJ;IAYI;IACA;IACA,WTwEmB;ISvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,OTlBM;ESmBN,kBdpBY;EcqBZ;EACA;EACA;EACA;EACA;;AVvCE;EU2BJ;IAeI;IACA;IACA,kBd9BU;Ic+BV;;;AAGF;EACE;;AAEA;EACE,Od/BO;;;AcoCb;EACE;EACA;EACA;EACA,cTKK;;ADlEH;EUyDJ;IAOI,cTIG;ISHH;;;AAGF;EACE;EACA;EACA;EACA,OdxCU;;;Ac4Cd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBdrEY;EcsEZ,4BTPc;ESQd,2BTRc;ESSd,YACE;;AVvFA;EU4EJ;IAeI;IACA,OTDmB;ISEnB;;;;AAIJ;EACE;EACA,eTpCK;ESqCL;;AXnFA;EACE;;AClBA;EUiGJ;IX3EI;;;ACtBA;EDOF;IACE;;;ACRA;EUiGJ;IXrFI;;;;AWgGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBdpHa;;;AcwHjB;EACE;EACA,aT7DK;ES8DL,gBT9DK;;ADhEH;EU2HJ;IAMI;IACA;IACA,eTnEG;ISoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;AXvIF;EACE;;ACRA;EU6IF;IXjIE;;;ACZA;EDHF;IACE;;;ACEA;EU6IF;IX3IE;;;AWoJF;EACE,OTrFG;ESsFH,QTtFG;ESuFH,cTzFG;ES0FH,OdrIS;EcsIT;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OT5JY;ES6JZ;EACA;;AX3LA;EACE;;ACYA;EUwKJ;IXhLI;;;;AW0LJ;EACE;EACA,aTpHK;ESqHL,gBTrHK;ESsHL,cTpHK;ESqHL,aTvHK;ESwHL,OTxKY;ESyKZ;EACA,aT9GO;ES+GP,mBTzKY;;AFrBZ;EACE;;ACEA;EUkLJ;IXhLI;;;ACFA;EUkLJ;IAaI;IACA;IACA,cTjIG;ISkIH;IACA;;;;AAIJ;EACE,YTzIK;;;AS4IP;EACE;;;AAGF;EACE;;AXzMA;EACE;;ACRA;EU+MJ;IXnMI;;;;AWwMJ;EACE;EACA,OTpJK;ESqJL,QTrJK;ESsJL;EACA,OTlJK;ESmJL,QTnJK;ESoJL,kBd7MY;Ec8MZ;EACA;EACA,YACE;EAEF;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,QTvLI;ESwLJ;;AVhQA;EU8PF;IAKI,OTxKiB;ISyKjB,YACE;;;AAKN;EACE,kBd7PU;;AIdV;EU0QF;IAII;;;AV9QF;EUkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AVjSF;EUuSA;IACE;IACA;IACA;;;AAIJ;EACE,aTvOI;;ADxEJ;EU8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eV0EK;EUzEL;EACA,eVkFc;EUjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA,kBVQY;EUPZ;EACA;;AZNA;AAAA;EACE;;ACRA;EWOJ;AAAA;IZKI;;;AYKF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBVkCD;;;AU3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBhBKoB;EgBJpB;EACA,eX+EY;;;AW1EhB;EACE,cXcY;;;AWqCd;AAAA;AAAA;EAGE;EACA,eXMK;EWLL,kBhB3DsB;EgB4DtB,eXgBc;EWfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OXLG;EWMH;EACA;EACA;EACA;EACA;EACA,kBhB3EoB;EgB4EpB,OX9DI;EW+DJ;;AAEA;AAAA;AAAA;EACE,MXlEE;;AWqEJ;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EACE;EACA,eXlEK;;AW2CL;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SXjFG;EWkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA,kBhBrKoB;EgBsKpB;;Ab1KF;AAAA;EACE;;ACEA;EYkKF;AAAA;IbhKE;;;Aa0KF;EACE;EACA,eX7GG;EW8GH,cX9GG;;AWiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SX1HK;EW2HL,eX3HK;EW4HL;EACA;EACA,eXlHc;;AWoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,YhBxNsB;EgB2NpB,OhB1NoB;;;AgBiOxB;EACE,YhBnOsB;;;AiBXxB;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AdPE;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AflGA;EACE;;ACYA;EeZJ;IhBII;;;;AAKF;AAAA;EACE;;ACEA;EeRJ;AAAA;IhBUI;;;;AAKF;EACE;;ACRA;EeJJ;IhBgBI;;;;AAKF;EACE;;AClBA;EeAJ;IhBsBI;;;;AAKF;EACE;;AC5BA;EeIJ;IhB4BI;;;;AAKF;EACE;;ACtCA;EeQJ;IhBkCI;IACA,aEhDuB;;;;AFqDzB;EACE;EACA,aEvDuB;;ADKvB;EeYJ;IhB0CI;;;;AAKF;EACE;EACA,aElEuB;;ADKvB;EegBJ;IhBiDI;;;;AAKF;EACE;EACA,aE7EuB;;ADKvB;EeoBJ;IhBwDI;;;;AAKF;EACE;EACA,aExFuB;;ADKvB;EewBJ;IhB+DI;;;;AgB3DJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,adxDiB;;;Ac2DnB;EACE,ad1DyB;;;Ac6D3B;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AC/EF;EACE;EACA;EACA;;AAGE;EACE;;;ACLN;EACE;EACA;;;AAQA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AjBlCA;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AAaN;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AjB7GA;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AC3JR;EACE;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;;AClCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE,OvBoBW;EuBnBX,kBvBYY;EuBXZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACpBF;EACE,kBxBmBY;;;AyBlBd;AAAA;EATE;EACA;EAUA;EACA;EACA;EACA;EACA;EACA;;ArBHE;EqBJJ;AAAA;IALI,epBsFY;IoBrFZ;;;AAaF;EACE;;AAGF;EACE;;AAGF;AAAA;AAAA;EACE,epB+DY;EoB9DZ;EACA;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE,YrBqEC;;AqBjEL;AAAA;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;EACE;;AtBbF;EsBCF;AAAA;IAgBI;;;AAGF;AAAA;AAAA;EACE;EACA,SrB0CC;;ADhEH;EsBoBA;AAAA;AAAA;IAKI;;;AAIJ;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;EACE;;AAEA;AAAA;EACE;;AAIJ;AAAA;EACE;;AAOF;AAAA;EACE;;AAGF;AAAA;AAAA;AAAA;EACE;;AAGF;AAAA;EACE;EACA;;AtBjEJ;EsB+DE;AAAA;IAKI;;;AAGF;AAAA;EACE;EACA;;AAGF;AAAA;EACE;;;AC3FV;EFCE;EACA;EEAA;EACA;;AvBWE;EuBdJ;IFKI,epBsFY;IoBrFZ;;;AEDF;EACE;;AAGF;AAAA;AAAA;EAGE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAEE,O3BwBU;E2BvBV;EACA;EACA,StBmDG;EsBlDH;;AAEA;EACE,kBtBCQ;EsBAR;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE,kB3B5BU;E2B6BV,etBgBY;EsBfZ;EACA,OtBhDI;EsBiDJ;EACA;EACA;EACA;EACA;EACA;;AAWA;EACE,kB3BnDQ;E2BoDR,O3B/CQ;;A2BkDV;EACE;;AAGF;EACE;;;ACxGN;EACE;EACA;;AAEA;EACE;EACA;EACA,cvByEG;EuBxEH;;AAGF;AAAA;EAEE;;AAEF;AAAA;EACI;EACA;EACA;;AAIJ;EAGE;EACA;;AAGF;EACE,O5BmBU;;;AF1Cd;EACE;;;AAGF;EACE,aOTiB;EPUjB;EACA,aOPiB;EPQjB,OOcM;EPbN,kBEYY;EFXZ;;;AAIF;AAAA;EAEE,OEYW;;AFVX;AAAA;AAAA;EAEE,OESqB;;;AFLzB;EACE;;;AAGF;AAAA;EAEE,aS3BkB;;;AT+BpB;EACE,kBOQU;;;APLZ;EACE,kBOYQ;;;APTV;EACE;EACA;;;AAGF;EACE;;;AAOF;EAGE;;;AAGF;EACE,WSjEc;ETkEd;;;AAIA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;;;AAMN;EACE,OElEmB;;;AFqErB;EACE;EACA;EACA;EACA","sourcesContent":["/* a11y-light theme */\r\n/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */\r\n/* @author: ericwbailey */\r\n/* Adapted to pygments/rouge by @cycomachead */\r\n\r\n:root {\r\n --pygments-a11y-bg-color: #fefefe;\r\n --pygments-a11y-light-on-dark: #FFF; /* Used for errors */\r\n --pygments-a11y-light-gray: #696969; /* comments */\r\n --pygments-a11y-dark-gray: #545454;\r\n --pygments-a11y-purple: #7928a1;\r\n --pygments-a11y-blue: #007faa;\r\n --pygments-a11y-green: #008000;\r\n --pygments-a11y-yellow: #aa5d00; /* attributes */\r\n --pygments-a11y-orange: #aa5d00;\r\n --pygments-a11y-red: #d91e18;\r\n}\r\n\r\n.highlight,\r\npre.highlight {\r\n background: var(--pygments-a11y-bg-color);\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight pre,\r\n.highlight .hll,\r\n.highlight .w {\r\n background: var(--pygments-a11y-bg-color);\r\n}\r\n\r\n.highlight .c {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .err {\r\n color: var(--pygments-a11y-light-on-dark);\r\n background-color: var(--pygments-a11y-red);\r\n}\r\n\r\n.highlight .k,\r\n.highlight .kc,\r\n.highlight .kd,\r\n.highlight .kn,\r\n.highlight .kp,\r\n.highlight .kr,\r\n.highlight .kt {\r\n color: var(--pygments-a11y-purple);\r\n}\r\n\r\n.highlight .n,\r\n.highlight .o,\r\n.highlight .p,\r\n.highlight .nf,\r\n.highlight .nn,\r\n.highlight .nx {\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight .cm,\r\n.highlight .cp,\r\n.highlight .c1,\r\n.highlight .cs {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .ge {\r\n font-style: italic;\r\n}\r\n\r\n.highlight .gs,\r\n.highlight .ow {\r\n font-weight: 700;\r\n}\r\n\r\n.highlight .l,\r\n.highlight .ld,\r\n.highlight .s,\r\n.highlight .sb,\r\n.highlight .sc,\r\n.highlight .sd,\r\n.highlight .s2,\r\n.highlight .se,\r\n.highlight .sh,\r\n.highlight .si,\r\n.highlight .sx,\r\n.highlight .s1 {\r\n color: var(--pygments-a11y-green);\r\n}\r\n\r\n.highlight .bp,\r\n.highlight .nb,\r\n.highlight .nc,\r\n.highlight .no,\r\n.highlight .nd,\r\n.highlight .ni,\r\n.highlight .ne,\r\n.highlight .nl,\r\n.highlight .nv,\r\n.highlight .py,\r\n.highlight .vc,\r\n.highlight .vg {\r\n color: var(--pygments-a11y-orange); /* #ca7601; */\r\n}\r\n\r\n.highlight .gd,\r\n.highlight .nt,\r\n.highlight .vi,\r\n.highlight .language-json .w + .s2 {\r\n color: var(--pygments-a11y-red); /* #e35549 */\r\n}\r\n\r\n.highlight .il,\r\n.highlight .m,\r\n.highlight .mf,\r\n.highlight .mh,\r\n.highlight .mi,\r\n.highlight .mo,\r\n.highlight .na {\r\n color: var(--pygments-a11y-yellow); /* #b66a00 */\r\n}\r\n\r\n.highlight .sr,\r\n.highlight .ss,\r\n.highlight .language-json .kc {\r\n color: var(--pygments-a11y-blue); /*#0083bb */\r\n}\r\n\r\n.highlight .gu {\r\n color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */\r\n}\r\n\r\n.highlight .gi {\r\n color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */\r\n}\r\n","// This config applies to all berkeley courses.\r\n// It is loaded *after* all Just-the-class customizations\r\n\r\n// UC Berkeley fonts 'Inter' (sans serif) 'Source Serif' (serif), and 'Source Code Pro' (monospace)\r\n@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap');\r\n\r\n// Override default JTD CSS for larger/more accessibile fonts.\r\nhtml {\r\n font-size: 16px;\r\n}\r\n\r\nbody {\r\n font-family: $body-font-family;\r\n font-size: inherit;\r\n line-height: $body-line-height;\r\n color: $body-text-color;\r\n background-color: $body-background-color;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n// Link Colors\r\na,\r\n.main-content .anchor-heading svg {\r\n color: $link-color;\r\n\r\n &:hover,\r\n &:focus {\r\n color: $hover-focus-link-color;\r\n }\r\n}\r\n\r\na:not([class]):hover {\r\n text-decoration-color: lighten($link-color, 20%);\r\n}\r\n\r\nh1, h2, h3, h4, h5, h6,\r\n.serif {\r\n font-family: $serif-font-family;\r\n}\r\n\r\n// Override JTD to be darker\r\n.label-green:not(g) {\r\n background-color: $green-300;\r\n}\r\n\r\n.label-red:not(g) {\r\n background-color: $red-300;\r\n}\r\n\r\ncode {\r\n padding: 0.2em 0.4em;\r\n border: none;\r\n}\r\n\r\niframe {\r\n max-width: 100%;\r\n}\r\n\r\ndetails {\r\n @extend .mb-4;\r\n}\r\n\r\nsummary {\r\n @extend .btn, .btn-outline;\r\n\r\n width: 100%;\r\n}\r\n\r\n.main-content-wrap {\r\n max-width: $content-width;\r\n margin: auto;\r\n}\r\n\r\n.main-content {\r\n dl {\r\n display: block;\r\n grid-template-columns: none;\r\n }\r\n\r\n dt {\r\n font-weight: 700;\r\n text-align: start;\r\n\r\n &::after {\r\n content: normal;\r\n }\r\n }\r\n\r\n dd {\r\n font-weight: normal;\r\n\r\n + dt {\r\n margin-top: 1em;\r\n }\r\n }\r\n}\r\n\r\n// This is intended to be used for the footer\r\n.text-lighter {\r\n color: $body-lighter-color;\r\n}\r\n\r\na[target=\"_blank\"]::after {\r\n font-family: 'Font Awesome 6 Free';\r\n font-weight: 900;\r\n content: \"\\f08e\";\r\n padding: 0 0.25rem;\r\n}\r\n","/* a11y-dark theme */\r\n/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */\r\n/* @author: ericwbailey */\r\n/* Adapted to pygments/rouge by @cycomachead */\r\n\r\n:root {\r\n --pygments-a11y-bg-color: #2b2b2b;\r\n --pygments-a11y-dark-on-light: #000; /* Used for errors */\r\n --pygments-a11y-light-gray: #d4d0ab; /* comments */\r\n --pygments-a11y-dark-gray: #f8f8f2;\r\n --pygments-a11y-purple: #dcc6e0;\r\n --pygments-a11y-blue: #00e0e0;\r\n --pygments-a11y-green: #abe338;\r\n --pygments-a11y-yellow: #ffd700; /* attributes */\r\n --pygments-a11y-orange: #f5ab35;\r\n --pygments-a11y-red: #ffa07a;\r\n}\r\n\r\n.highlight,\r\npre.highlight {\r\n background: var(--pygments-a11y-bg-color);\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight pre,\r\n.highlight .hll,\r\n.highlight .w {\r\n background: var(--pygments-a11y-bg-color);\r\n}\r\n\r\n.highlight .c {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .err {\r\n color: var(--pygments-a11y-dark-on-light);\r\n background-color: var(--pygments-a11y-red);\r\n}\r\n\r\n.highlight .k,\r\n.highlight .kc,\r\n.highlight .kd,\r\n.highlight .kn,\r\n.highlight .kp,\r\n.highlight .kr,\r\n.highlight .kt {\r\n color: var(--pygments-a11y-purple);\r\n}\r\n\r\n.highlight .n,\r\n.highlight .o,\r\n.highlight .p,\r\n.highlight .nf,\r\n.highlight .nn,\r\n.highlight .nx {\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight .cm,\r\n.highlight .cp,\r\n.highlight .c1,\r\n.highlight .cs {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .ge {\r\n font-style: italic;\r\n}\r\n\r\n.highlight .gs,\r\n.highlight .ow {\r\n font-weight: 700;\r\n}\r\n\r\n.highlight .l,\r\n.highlight .ld,\r\n.highlight .s,\r\n.highlight .sb,\r\n.highlight .sc,\r\n.highlight .sd,\r\n.highlight .s2,\r\n.highlight .se,\r\n.highlight .sh,\r\n.highlight .si,\r\n.highlight .sx,\r\n.highlight .s1 {\r\n color: var(--pygments-a11y-green);\r\n}\r\n\r\n.highlight .bp,\r\n.highlight .nb,\r\n.highlight .nc,\r\n.highlight .no,\r\n.highlight .nd,\r\n.highlight .ni,\r\n.highlight .ne,\r\n.highlight .nl,\r\n.highlight .nv,\r\n.highlight .py,\r\n.highlight .vc,\r\n.highlight .vg {\r\n color: var(--pygments-a11y-orange); /* #ca7601; */\r\n}\r\n\r\n.highlight .gd,\r\n.highlight .nt,\r\n.highlight .vi,\r\n.highlight .language-json .w + .s2 {\r\n color: var(--pygments-a11y-red); /* #e35549 */\r\n}\r\n\r\n.highlight .il,\r\n.highlight .m,\r\n.highlight .mf,\r\n.highlight .mh,\r\n.highlight .mi,\r\n.highlight .mo,\r\n.highlight .na {\r\n color: var(--pygments-a11y-yellow); /* #b66a00 */\r\n}\r\n\r\n.highlight .sr,\r\n.highlight .ss,\r\n.highlight .language-json .kc {\r\n color: var(--pygments-a11y-blue); /*#0083bb */\r\n}\r\n\r\n.highlight .gu {\r\n color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */\r\n}\r\n\r\n.highlight .gi {\r\n color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */\r\n}\r\n","// This file is coped from Just The Docs\r\n// Individual courses should not modify it!\r\n// All deviations should be documented.\r\n// https://github.com/just-the-docs/just-the-docs/blob/main/_sass/color_schemes/light.scss\r\n\r\n/////////// Do not modify this section.\r\n$color-scheme: dark;\r\n$body-background-color: $grey-dk-300;\r\n$body-heading-color: $grey-lt-000;\r\n$body-text-color: $grey-lt-300;\r\n// $link-color: $blue-000;\r\n$nav-child-link-color: $grey-dk-000;\r\n$sidebar-color: $grey-dk-300;\r\n$base-button-color: $grey-dk-250;\r\n// $btn-primary-color: $blue-200;\r\n$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid\r\n$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid\r\n$feedback-color: darken($sidebar-color, 3%);\r\n$table-background-color: $grey-dk-250;\r\n$search-background-color: $grey-dk-250;\r\n$search-result-preview-color: $grey-dk-000;\r\n$border-color: $grey-dk-200;\r\n/////////////////// Add modifications below\r\n\r\n@import '../snytax_highliters/a11y-dark';\r\n\r\n// Override dark-mode variables here\r\n$berkeley-blue: #002676; // rgb(0, 38, 118);\r\n$grey-dk-400: #0C0A0E !default;\r\n$body-background-color: $grey-dk-400;\r\n$sidebar-color: $grey-dk-400;\r\n$search-background-color: $grey-dk-400;\r\n$body-text-color: $white;\r\n$body-lighter-color: darken($body-text-color, 20%);\r\n\r\n$link-color: #406FFE;\r\n$hover-focus-link-color: darken($link-color, 10%);\r\n\r\n// TODO(template): We need to figure out a much better solution!\r\n// This swaps the \"dk\" and \"lt\" variants from the original JTD files.\r\n$grey-lt-000: #959396;\r\n$grey-lt-100: #5c5962;\r\n$grey-lt-200: #44434d;\r\n$grey-lt-250: #302d36;\r\n$grey-lt-300: #27262b;\r\n\r\n$grey-dk-000: #f5f6fa;\r\n$grey-dk-100: #eeebee;\r\n$grey-dk-200: #ecebed;\r\n$grey-dk-300: #e6e1e8;\r\n\r\n$btn-primary-color: $berkeley-blue;\r\n$base-button-color: $grey-dk-200;\r\n\r\n// This is not great, but JTD forces $link-color\r\n.btn:not(.btn-outline) {\r\n color: $btn-primary-color !important;\r\n}\r\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","// Common Berkeley Variables.\r\n// This file is explicitly included before berkeley.scss in setup.scss\r\n// Some colors may be override by berkeley_light or berkeley_dark\r\n\r\n$content-width: 1200px;\r\n\r\n// Typography\r\n$mono-font-family: \"Source Code Pro\", \"SFMono-Regular\", menlo, consolas, monospace !default;\r\n$body-font-family: 'Inter', system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\r\nroboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\r\n$serif-font-family: 'Source Serif 4', 'Georiga', 'Baskerville', serif;\r\n\r\n$berkeley-blue-old: #003262;\r\n$berkeley-blue: #002676; // rgb(0, 38, 118);\r\n\r\n// Colors\r\n$link-color: $berkeley-blue;\r\n$hover-focus-link-color: lighten($link-color, 20%);\r\n\r\n// Layout\r\n$gutter-spacing: $sp-6;\r\n$gutter-spacing-sm: $sp-4;\r\n$nav-width: 256px;\r\n\r\n// Components\r\n$box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05);\r\n$module-date-color: $link-color;\r\n$staffer-image-size: 100px;\r\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"•\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/dark\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n","@mixin abstract-card() {\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05);\r\n margin: $sp-4 (-$gutter-spacing-sm);\r\n\r\n @include mq(md) {\r\n border-radius: $border-radius;\r\n margin: $sp-4 0;\r\n }\r\n}\r\n\r\n%card {\r\n @include abstract-card();\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 0;\r\n padding: 0 $sp-4;\r\n position: relative;\r\n word-wrap: break-word;\r\n\r\n >:first-child {\r\n border-top: none !important;\r\n }\r\n\r\n >:last-child {\r\n border-bottom: none !important;\r\n }\r\n\r\n .label {\r\n border-radius: $border-radius;\r\n margin-left: 0;\r\n user-select: none;\r\n }\r\n}\r\n",".main-content .module,\r\n.module {\r\n @extend %card;\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6 {\r\n &:first-child {\r\n margin-top: $sp-4;\r\n }\r\n }\r\n\r\n >dl {\r\n border-bottom: $border $border-color;\r\n border-top: $border $border-color;\r\n display: grid;\r\n grid-template-columns: max-content 1fr;\r\n margin: $sp-2 (-$sp-4);\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n @include mq(lg) {\r\n grid-template-columns: 1fr 7fr;\r\n }\r\n\r\n %module-item {\r\n margin: 0;\r\n padding: $sp-2;\r\n\r\n @include mq(sm) {\r\n padding: $sp-2 $sp-4;\r\n }\r\n }\r\n\r\n >dt {\r\n @extend %module-item;\r\n border-top: $border $border-color;\r\n font-weight: normal;\r\n text-align: right;\r\n\r\n +dd {\r\n border-top: $border $border-color;\r\n }\r\n\r\n &:first-child {\r\n border-top: none;\r\n\r\n +dd {\r\n border-top: none;\r\n }\r\n }\r\n\r\n &::after {\r\n content: \":\";\r\n }\r\n }\r\n\r\n >dd {\r\n @extend %module-item;\r\n\r\n +dd {\r\n padding-top: 0;\r\n }\r\n\r\n ol, ul, dl {\r\n margin: 0;\r\n }\r\n\r\n dl {\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @include mq(sm) {\r\n flex-direction: row;\r\n }\r\n\r\n dt {\r\n flex: 0 0 62.5%;\r\n margin: 0;\r\n }\r\n\r\n dd {\r\n margin: 0;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".schedule {\r\n @include abstract-card();\r\n overflow-x: scroll;\r\n position: relative;\r\n\r\n li::before {\r\n display: none;\r\n }\r\n\r\n ul.schedule-timeline,\r\n ul.schedule-group,\r\n ul.schedule-events {\r\n margin-top: 0;\r\n padding-left: 0;\r\n }\r\n\r\n ul.schedule-timeline {\r\n margin: 40px auto 0;\r\n position: absolute;\r\n width: 100%;\r\n }\r\n\r\n .schedule-time {\r\n @extend .fs-2;\r\n color: $grey-dk-200;\r\n height: 40px;\r\n margin: 0;\r\n padding: $sp-2;\r\n position: relative;\r\n\r\n &::after {\r\n background-color: $border-color;\r\n content: '';\r\n height: 1px;\r\n left: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .schedule-group {\r\n display: flex;\r\n margin-bottom: 0;\r\n position: relative;\r\n }\r\n\r\n .schedule-day {\r\n border-left: $border $border-color;\r\n flex: 1 0 0;\r\n margin: 0;\r\n min-width: 120px;\r\n\r\n &:first-of-type {\r\n border-left: 0;\r\n }\r\n }\r\n\r\n h2.schedule-header {\r\n align-items: center;\r\n display: flex;\r\n font-size: 18px !important;\r\n height: 40px;\r\n justify-content: center;\r\n margin: 0;\r\n }\r\n\r\n .schedule-events {\r\n display: flex;\r\n padding: 0;\r\n position: relative;\r\n }\r\n\r\n .schedule-event {\r\n background-color: $grey-dk-000;\r\n border-radius: $border-radius;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, .1), inset 0 -3px 0 rgba(0, 0, 0, .2);\r\n color: $white;\r\n float: left;\r\n height: 100%;\r\n margin: 0;\r\n padding: $sp-1 $sp-2;\r\n position: absolute;\r\n width: 100%;\r\n\r\n .name {\r\n @extend .fs-3, .fw-700;\r\n }\r\n\r\n .time,\r\n .location {\r\n @extend .fs-2;\r\n }\r\n\r\n &.lecture {\r\n background-color: $grey-lt-300;\r\n color: $grey-dk-300;\r\n }\r\n\r\n &.section {\r\n background-color: darken($purple-000, 15%);\r\n }\r\n\r\n &.office-hours {\r\n background-color: darken($green-200, 10%);\r\n }\r\n }\r\n}\r\n",".staffer {\r\n display: flex;\r\n margin: $sp-4 0;\r\n\r\n .staffer-image {\r\n border-radius: 50%;\r\n height: 100px;\r\n margin-right: $sp-4;\r\n width: auto;\r\n }\r\n\r\n p,\r\n .staffer-name {\r\n margin: $sp-1 !important;\r\n\r\n .anchor-heading {\r\n width: 1.8rem;\r\n padding-left: 0.5rem;\r\n padding-right: 0.5rem;\r\n }\r\n }\r\n\r\n .staffer-badge {\r\n @extend .label, .text-grey-dk-300, .bg-grey-lt-200;\r\n\r\n -webkit-user-select: none;\r\n user-select: none;\r\n }\r\n\r\n .staffer-meta {\r\n color: $grey-dk-300;\r\n }\r\n}\r\n"],"file":"just-the-docs-dark.css"} \ No newline at end of file diff --git a/_site/assets/css/just-the-docs-default.css b/_site/assets/css/just-the-docs-default.css new file mode 100644 index 0000000..24c25d3 --- /dev/null +++ b/_site/assets/css/just-the-docs-default.css @@ -0,0 +1,7562 @@ +@charset "UTF-8"; +/* a11y-light theme */ +/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ +/* @author: ericwbailey */ +/* Adapted to pygments/rouge by @cycomachead */ +@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap"); +:root { + --pygments-a11y-bg-color: #fefefe; + --pygments-a11y-light-on-dark: #FFF; /* Used for errors */ + --pygments-a11y-light-gray: #696969; /* comments */ + --pygments-a11y-dark-gray: #545454; + --pygments-a11y-purple: #7928a1; + --pygments-a11y-blue: #007faa; + --pygments-a11y-green: #008000; + --pygments-a11y-yellow: #aa5d00; /* attributes */ + --pygments-a11y-orange: #aa5d00; + --pygments-a11y-red: #d91e18; +} + +.highlight, +pre.highlight { + background: var(--pygments-a11y-bg-color); + color: var(--pygments-a11y-dark-gray); +} + +.highlight pre, +.highlight .hll, +.highlight .w { + background: var(--pygments-a11y-bg-color); +} + +.highlight .c { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .err { + color: var(--pygments-a11y-light-on-dark); + background-color: var(--pygments-a11y-red); +} + +.highlight .k, +.highlight .kc, +.highlight .kd, +.highlight .kn, +.highlight .kp, +.highlight .kr, +.highlight .kt { + color: var(--pygments-a11y-purple); +} + +.highlight .n, +.highlight .o, +.highlight .p, +.highlight .nf, +.highlight .nn, +.highlight .nx { + color: var(--pygments-a11y-dark-gray); +} + +.highlight .cm, +.highlight .cp, +.highlight .c1, +.highlight .cs { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs, +.highlight .ow { + font-weight: 700; +} + +.highlight .l, +.highlight .ld, +.highlight .s, +.highlight .sb, +.highlight .sc, +.highlight .sd, +.highlight .s2, +.highlight .se, +.highlight .sh, +.highlight .si, +.highlight .sx, +.highlight .s1 { + color: var(--pygments-a11y-green); +} + +.highlight .bp, +.highlight .nb, +.highlight .nc, +.highlight .no, +.highlight .nd, +.highlight .ni, +.highlight .ne, +.highlight .nl, +.highlight .nv, +.highlight .py, +.highlight .vc, +.highlight .vg { + color: var(--pygments-a11y-orange); /* #ca7601; */ +} + +.highlight .gd, +.highlight .nt, +.highlight .vi, +.highlight .language-json .w + .s2 { + color: var(--pygments-a11y-red); /* #e35549 */ +} + +.highlight .il, +.highlight .m, +.highlight .mf, +.highlight .mh, +.highlight .mi, +.highlight .mo, +.highlight .na { + color: var(--pygments-a11y-yellow); /* #b66a00 */ +} + +.highlight .sr, +.highlight .ss, +.highlight .language-json .kc { + color: var(--pygments-a11y-blue); /*#0083bb */ +} + +.highlight .gu { + color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */ +} + +.highlight .gi { + color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */ +} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document + ========================================================================== */ +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; /* 1 */ + text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ +/** + * Remove the gray background on active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove the border on images inside links in IE 10. + */ +img { + border-style: none; +} + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type=button], +[type=reset], +[type=submit] { + appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type=search] { + appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type=search]::-webkit-search-decoration { + appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +:root { + color-scheme: light; +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} +html { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + html { + font-size: 1rem !important; + } +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #5c5962; + background-color: #fff; + overflow-wrap: break-word; +} + +ol, +ul, +dl, +pre, +address, +blockquote, +table, +div, +hr, +form, +fieldset, +noscript .table-wrapper { + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +#toctitle { + margin-top: 0; + margin-bottom: 1em; + font-weight: 500; + line-height: 1.25; + color: #27262b; +} + +p { + margin-top: 1em; + margin-bottom: 1em; +} + +a { + color: #002676; + text-decoration: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(0, 38, 118, 0.45); +} + +code { + font-family: "SFMono-Regular", menlo, consolas, monospace; + font-size: 0.75em; + line-height: 1.4; +} + +figure, +pre { + margin: 0; +} + +li { + margin: 0.25em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + height: 1px; + padding: 0; + margin: 2rem 0; + background-color: #eeebee; + border: 0; +} + +blockquote { + margin: 10px 0; + margin-block-start: 0; + margin-inline-start: 0; + padding-left: 1rem; + border-left: 3px solid #eeebee; +} + +.side-bar { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar { + flex-flow: column nowrap; + position: fixed; + width: 15.5rem; + height: 100%; + border-right: 1px solid #eeebee; + align-items: flex-end; + } +} +@media (min-width: 66.5rem) { + .side-bar { + width: calc((100% - 1456px) / 2 + 256px); + min-width: 256px; + } +} +@media (min-width: 50rem) { + .side-bar + .main { + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .side-bar + .main { + margin-left: max(256px, (100% - 1456px) / 2 + 256px); + } +} +.side-bar + .main .main-header { + display: none; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header { + display: flex; + background-color: #fff; + } +} +.side-bar + .main .main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header.nav-open { + display: flex; + } +} + +.main { + margin: auto; +} +@media (min-width: 50rem) { + .main { + position: relative; + max-width: 1200px; + } +} + +.main-content-wrap { + padding-top: 1rem; + padding-bottom: 1rem; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-top: 2rem; + padding-bottom: 2rem; + } +} + +.main-header { + z-index: 0; + border-bottom: 1px solid #eeebee; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + } +} + +.site-nav, +.site-header, +.site-footer { + width: 100%; +} +@media (min-width: 66.5rem) { + .site-nav, + .site-header, + .site-footer { + width: 256px; + } +} + +.site-nav { + display: none; +} +.site-nav.nav-open { + display: block; +} +@media (min-width: 50rem) { + .site-nav { + display: block; + padding-top: 3rem; + padding-bottom: 1rem; + overflow-y: auto; + flex: 1 1 auto; + } +} + +.site-header { + display: flex; + min-height: 3.75rem; + align-items: center; +} +@media (min-width: 50rem) { + .site-header { + height: 3.75rem; + max-height: 3.75rem; + border-bottom: 1px solid #eeebee; + } +} + +.site-title { + flex-grow: 1; + display: flex; + height: 100%; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #27262b; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .site-title { + padding-right: 2rem; + padding-left: 2rem; + } +} +.site-title { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .site-title { + font-size: 1.5rem !important; + line-height: 1.25; + } +} +@media (min-width: 50rem) { + .site-title { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } +} + +.site-button { + display: flex; + height: 100%; + padding: 1rem; + align-items: center; +} + +@media (min-width: 50rem) { + .site-header .site-button { + display: none; + } +} +.site-title:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} + +body { + position: relative; + padding-bottom: 4rem; + overflow-y: scroll; +} +@media (min-width: 50rem) { + body { + position: static; + padding-bottom: 0; + } +} + +.site-footer { + position: absolute; + bottom: 0; + left: 0; + padding-top: 1rem; + padding-bottom: 1rem; + color: #959396; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .site-footer { + padding-right: 2rem; + padding-left: 2rem; + } +} +.site-footer { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .site-footer { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .site-footer { + position: static; + justify-self: end; + } +} + +.icon { + width: 1.5rem; + height: 1.5rem; + color: #002676; +} + +.main-content { + line-height: 1.6; +} +.main-content ol, +.main-content ul, +.main-content dl, +.main-content pre, +.main-content address, +.main-content blockquote, +.main-content .table-wrapper { + margin-top: 0.5em; +} +.main-content a { + overflow: hidden; + text-overflow: ellipsis; +} +.main-content ul, +.main-content ol { + padding-left: 1.5em; +} +.main-content li .highlight { + margin-top: 0.25rem; +} +.main-content ol { + list-style-type: none; + counter-reset: step-counter; +} +.main-content ol > li { + position: relative; +} +.main-content ol > li::before { + position: absolute; + top: 0.2em; + left: -1.6em; + color: #959396; + content: counter(step-counter); + counter-increment: step-counter; +} +.main-content ol > li::before { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + font-size: 0.875rem !important; + } +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + top: 0.11em; + } +} +.main-content ol > li ol { + counter-reset: sub-counter; +} +.main-content ol > li ol > li::before { + content: counter(sub-counter, lower-alpha); + counter-increment: sub-counter; +} +.main-content ul { + list-style: none; +} +.main-content ul > li::before { + position: absolute; + margin-left: -1.4em; + color: #959396; + content: "•"; +} +.main-content .task-list-item::before { + content: ""; +} +.main-content .task-list-item-checkbox { + margin-right: 0.6em; + margin-left: -1.4em; +} +.main-content hr + * { + margin-top: 0; +} +.main-content h1:first-of-type { + margin-top: 0.5em; +} +.main-content dl { + display: grid; + grid-template: auto/10em 1fr; +} +.main-content dt, +.main-content dd { + margin: 0.25em 0; +} +.main-content dt { + grid-column: 1; + font-weight: 500; + text-align: right; +} +.main-content dt::after { + content: ":"; +} +.main-content dd { + grid-column: 2; + margin-bottom: 0; + margin-left: 1em; +} +.main-content dd blockquote:first-child, +.main-content dd div:first-child, +.main-content dd dl:first-child, +.main-content dd dt:first-child, +.main-content dd h1:first-child, +.main-content dd h2:first-child, +.main-content dd h3:first-child, +.main-content dd h4:first-child, +.main-content dd h5:first-child, +.main-content dd h6:first-child, +.main-content dd li:first-child, +.main-content dd ol:first-child, +.main-content dd p:first-child, +.main-content dd pre:first-child, +.main-content dd table:first-child, +.main-content dd ul:first-child, +.main-content dd .table-wrapper:first-child { + margin-top: 0; +} +.main-content dd dl:first-child dt:first-child, +.main-content dd dl:first-child dd:nth-child(2), +.main-content ol dl:first-child dt:first-child, +.main-content ol dl:first-child dd:nth-child(2), +.main-content ul dl:first-child dt:first-child, +.main-content ul dl:first-child dd:nth-child(2) { + margin-top: 0; +} +.main-content .anchor-heading { + position: absolute; + right: -1rem; + width: 1.5rem; + height: 100%; + padding-right: 0.25rem; + padding-left: 0.25rem; + overflow: visible; +} +@media (min-width: 50rem) { + .main-content .anchor-heading { + right: auto; + left: -1.5rem; + } +} +.main-content .anchor-heading svg { + display: inline-block; + width: 100%; + height: 100%; + color: #002676; + visibility: hidden; +} +.main-content .anchor-heading:hover svg, +.main-content .anchor-heading:focus svg, +.main-content h1:hover > .anchor-heading svg, +.main-content h2:hover > .anchor-heading svg, +.main-content h3:hover > .anchor-heading svg, +.main-content h4:hover > .anchor-heading svg, +.main-content h5:hover > .anchor-heading svg, +.main-content h6:hover > .anchor-heading svg { + visibility: visible; +} +.main-content summary { + cursor: pointer; +} +.main-content h1, +.main-content h2, +.main-content h3, +.main-content h4, +.main-content h5, +.main-content h6, +.main-content #toctitle { + position: relative; + margin-top: 1.5em; + margin-bottom: 0.25em; +} +.main-content h1 + table, +.main-content h1 + .table-wrapper, +.main-content h1 + .code-example, +.main-content h1 + .highlighter-rouge, +.main-content h1 + .sectionbody .listingblock, +.main-content h2 + table, +.main-content h2 + .table-wrapper, +.main-content h2 + .code-example, +.main-content h2 + .highlighter-rouge, +.main-content h2 + .sectionbody .listingblock, +.main-content h3 + table, +.main-content h3 + .table-wrapper, +.main-content h3 + .code-example, +.main-content h3 + .highlighter-rouge, +.main-content h3 + .sectionbody .listingblock, +.main-content h4 + table, +.main-content h4 + .table-wrapper, +.main-content h4 + .code-example, +.main-content h4 + .highlighter-rouge, +.main-content h4 + .sectionbody .listingblock, +.main-content h5 + table, +.main-content h5 + .table-wrapper, +.main-content h5 + .code-example, +.main-content h5 + .highlighter-rouge, +.main-content h5 + .sectionbody .listingblock, +.main-content h6 + table, +.main-content h6 + .table-wrapper, +.main-content h6 + .code-example, +.main-content h6 + .highlighter-rouge, +.main-content h6 + .sectionbody .listingblock, +.main-content #toctitle + table, +.main-content #toctitle + .table-wrapper, +.main-content #toctitle + .code-example, +.main-content #toctitle + .highlighter-rouge, +.main-content #toctitle + .sectionbody .listingblock { + margin-top: 1em; +} +.main-content h1 + p:not(.label), +.main-content h2 + p:not(.label), +.main-content h3 + p:not(.label), +.main-content h4 + p:not(.label), +.main-content h5 + p:not(.label), +.main-content h6 + p:not(.label), +.main-content #toctitle + p:not(.label) { + margin-top: 0; +} +.main-content > h1:first-child, +.main-content > h2:first-child, +.main-content > h3:first-child, +.main-content > h4:first-child, +.main-content > h5:first-child, +.main-content > h6:first-child, +.main-content > .sect1:first-child > h2, +.main-content > .sect2:first-child > h3, +.main-content > .sect3:first-child > h4, +.main-content > .sect4:first-child > h5, +.main-content > .sect5:first-child > h6 { + margin-top: 0.5rem; +} + +.nav-list { + padding: 0; + margin-top: 0; + margin-bottom: 0; + list-style: none; +} +.nav-list .nav-list-item { + position: relative; + margin: 0; +} +.nav-list .nav-list-item { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .nav-list .nav-list-item { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 0.875rem !important; + } +} +.nav-list .nav-list-item .nav-list-link { + display: block; + min-height: 3rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + line-height: 2.5rem; + padding-right: 3rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-link { + min-height: 2rem; + line-height: 1.5rem; + padding-right: 2rem; + padding-left: 2rem; + } +} +.nav-list .nav-list-item .nav-list-link.external > svg { + width: 1rem; + height: 1rem; + vertical-align: text-bottom; +} +.nav-list .nav-list-item .nav-list-link.active { + font-weight: 600; + text-decoration: none; +} +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #002676; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-expander { + width: 2rem; + height: 2rem; + padding: 0.5rem; + } +} +.nav-list .nav-list-item .nav-list-expander:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} +.nav-list .nav-list-item .nav-list-expander svg { + transform: rotate(90deg); +} +.nav-list .nav-list-item > .nav-list { + display: none; + padding-left: 0.75rem; + list-style: none; +} +.nav-list .nav-list-item > .nav-list .nav-list-item { + position: relative; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { + color: #5c5962; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: #5c5962; +} +.nav-list .nav-list-item.active > .nav-list-expander svg { + transform: rotate(-90deg); +} +.nav-list .nav-list-item.active > .nav-list { + display: block; +} + +.nav-category { + padding: 0.5rem 1rem; + font-weight: 600; + text-align: start; + text-transform: uppercase; + border-bottom: 1px solid #eeebee; +} +.nav-category { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .nav-category { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .nav-category { + padding: 0.5rem 2rem; + margin-top: 1rem; + text-align: start; + } + .nav-category:first-child { + margin-top: 0; + } +} + +.nav-list.nav-category-list > .nav-list-item { + margin: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list { + padding: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { + color: #002676; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #002676; +} + +.aux-nav { + height: 100%; + overflow-x: auto; +} +.aux-nav { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .aux-nav { + font-size: 0.75rem !important; + } +} +.aux-nav .aux-nav-list { + display: flex; + height: 100%; + padding: 0; + margin: 0; + list-style: none; +} +.aux-nav .aux-nav-list-item { + display: inline-block; + height: 100%; + padding: 0; + margin: 0; +} +@media (min-width: 50rem) { + .aux-nav { + padding-right: 1rem; + } +} + +@media (min-width: 50rem) { + .breadcrumb-nav { + margin-top: -1rem; + } +} + +.breadcrumb-nav-list { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} + +.breadcrumb-nav-list-item { + display: table-cell; +} +.breadcrumb-nav-list-item { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumb-nav-list-item { + font-size: 0.75rem !important; + } +} +.breadcrumb-nav-list-item::before { + display: none; +} +.breadcrumb-nav-list-item::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumb-nav-list-item:last-child::after { + content: ""; +} + +h1, +.text-alpha { + font-weight: 300; +} +h1, +.text-alpha { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + h1, + .text-alpha { + font-size: 2.25rem !important; + } +} + +h2, +.text-beta, +#toctitle { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + h2, + .text-beta, + #toctitle { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +h3, +.text-gamma, +.announcement h1, +.announcement h2 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + h3, + .text-gamma, + .announcement h1, + .announcement h2 { + font-size: 1.125rem !important; + } +} + +h4, +.text-delta { + font-weight: 400; + text-transform: uppercase; + letter-spacing: 0.1em; +} +h4, +.text-delta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h4, + .text-delta { + font-size: 0.75rem !important; + } +} + +h4 code { + text-transform: none; +} + +h5, +.text-epsilon, +.announcement .announcement-meta { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + h5, + .text-epsilon, + .announcement .announcement-meta { + font-size: 0.875rem !important; + } +} + +h6, +.text-zeta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h6, + .text-zeta { + font-size: 0.75rem !important; + } +} + +.text-small { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .text-small { + font-size: 0.75rem !important; + } +} + +.text-mono { + font-family: "SFMono-Regular", menlo, consolas, monospace !important; +} + +.text-left { + text-align: left !important; +} + +.text-center { + text-align: center !important; +} + +.text-right { + text-align: right !important; +} + +.label:not(g), .staffer .staffer-badge:not(g), +.label-blue:not(g) { + display: inline-block; + padding: 0.16em 0.56em; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #fff; + text-transform: uppercase; + vertical-align: middle; + background-color: #2869e6; + border-radius: 12px; +} +.label:not(g), .staffer .staffer-badge:not(g), +.label-blue:not(g) { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .label:not(g), .staffer .staffer-badge:not(g), + .label-blue:not(g) { + font-size: 0.75rem !important; + } +} + +.label-green:not(g) { + background-color: #009c7b; +} + +.label-purple:not(g) { + background-color: #5e41d0; +} + +.label-red:not(g) { + background-color: #e94c4c; +} + +.label-yellow:not(g) { + color: #44434d; + background-color: #f7d12e; +} + +.btn, summary { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #002676; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #f7f7f7; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; +} +.btn:focus, summary:focus { + text-decoration: none; + outline: none; + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:focus:hover, summary:focus:hover, .btn.selected:focus, summary.selected:focus { + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:hover, summary:hover, .btn.zeroclipboard-is-hover, summary.zeroclipboard-is-hover { + color: #00236c; +} +.btn:hover, summary:hover, .btn:active, summary:active, .btn.zeroclipboard-is-hover, summary.zeroclipboard-is-hover, .btn.zeroclipboard-is-active, summary.zeroclipboard-is-active { + text-decoration: none; + background-color: #f4f4f4; +} +.btn:active, summary:active, .btn.selected, summary.selected, .btn.zeroclipboard-is-active, summary.zeroclipboard-is-active { + background-color: #efefef; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn.selected:hover, summary.selected:hover { + background-color: #cfcfcf; +} +.btn:disabled, summary:disabled, .btn:disabled:hover, .btn.disabled, summary.disabled, .btn.disabled:hover { + color: rgba(102, 102, 102, 0.5); + cursor: default; + background-color: rgba(229, 229, 229, 0.5); + background-image: none; + box-shadow: none; +} + +.btn-outline, summary { + color: #002676; + background: transparent; + box-shadow: inset 0 0 0 2px #e6e1e8; +} +.btn-outline:hover, summary:hover, .btn-outline:active, summary:active, .btn-outline.zeroclipboard-is-hover, summary.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active, summary.zeroclipboard-is-active { + color: #001f62; + text-decoration: none; + background-color: transparent; + box-shadow: inset 0 0 0 3px #e6e1e8; +} +.btn-outline:focus, summary:focus { + text-decoration: none; + outline: none; + box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn-outline:focus:hover, summary:focus:hover, .btn-outline.selected:focus, summary.selected:focus { + box-shadow: inset 0 0 0 2px #5c5962; +} + +.btn-primary { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #472cb2; +} + +.btn-purple { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-purple.selected:hover { + background-color: #472cb2; +} + +.btn-blue { + color: #fff; + background-color: #227efa; + background-image: linear-gradient(#4593fb, #227efa); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { + color: #fff; + background-color: #1878fa; + background-image: linear-gradient(#368afa, #1878fa); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #1375f9; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #0669ed; +} + +.btn-green { + color: #fff; + background-color: #10ac7d; + background-image: linear-gradient(#13cc95, #10ac7d); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-green:hover, .btn-green.zeroclipboard-is-hover { + color: #fff; + background-color: #0fa276; + background-image: linear-gradient(#12be8b, #0fa276); +} +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { + background-color: #0f9e73; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-green.selected:hover { + background-color: #0d8662; +} + +.btn-reset { + background: none; + border: none; + margin: 0; + text-align: inherit; + font: inherit; + border-radius: 0; + appearance: none; +} + +.search { + position: relative; + z-index: 2; + flex-grow: 1; + height: 4rem; + padding: 0.5rem; + transition: padding linear 200ms; +} +@media (min-width: 50rem) { + .search { + position: relative !important; + width: auto !important; + height: 100% !important; + padding: 0; + transition: none; + } +} + +.search-input-wrap { + position: relative; + z-index: 1; + height: 3rem; + overflow: hidden; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + transition: height linear 200ms; +} +@media (min-width: 50rem) { + .search-input-wrap { + position: absolute; + width: 100%; + max-width: 33.5rem; + height: 100% !important; + border-radius: 0; + box-shadow: none; + transition: width ease 400ms; + } +} + +.search-input { + position: absolute; + width: 100%; + height: 100%; + padding: 0.5rem 1rem 0.5rem 2.5rem; + font-size: 1rem; + color: #5c5962; + background-color: #fff; + border-top: 0; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-input { + padding: 0.5rem 1rem 0.5rem 3.5rem; + font-size: 0.875rem; + background-color: #fff; + transition: padding-left linear 200ms; + } +} +.search-input:focus { + outline: 0; +} +.search-input:focus + .search-label .search-icon { + color: #002676; +} + +.search-label { + position: absolute; + display: flex; + height: 100%; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .search-label { + padding-left: 2rem; + transition: padding-left linear 200ms; + } +} +.search-label .search-icon { + width: 1.2rem; + height: 1.2rem; + align-self: center; + color: #959396; +} + +.search-results { + position: absolute; + left: 0; + display: none; + width: 100%; + max-height: calc(100% - 4rem); + overflow-y: auto; + background-color: #fff; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} +@media (min-width: 50rem) { + .search-results { + top: 100%; + width: 33.5rem; + max-height: calc(100vh - 200%) !important; + } +} + +.search-results-list { + padding-left: 0; + margin-bottom: 0.25rem; + list-style: none; +} +.search-results-list { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .search-results-list { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .search-results-list { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-results-list { + font-size: 0.875rem !important; + } +} + +.search-results-list-item { + padding: 0; + margin: 0; +} + +.search-result { + display: block; + padding: 0.25rem 0.75rem; +} +.search-result:hover, .search-result.active { + background-color: #ebedf5; +} + +.search-result-title { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +@media (min-width: 31.25rem) { + .search-result-title { + display: inline-block; + width: 40%; + padding-right: 0.5rem; + vertical-align: top; + } +} + +.search-result-doc { + display: flex; + align-items: center; + word-wrap: break-word; +} +.search-result-doc.search-result-doc-parent { + opacity: 0.5; +} +.search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.6875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; + } +} +.search-result-doc .search-result-icon { + width: 1rem; + height: 1rem; + margin-right: 0.5rem; + color: #002676; + flex-shrink: 0; +} +.search-result-doc .search-result-doc-title { + overflow: auto; +} + +.search-result-section { + margin-left: 1.5rem; + word-wrap: break-word; +} + +.search-result-rel-url { + display: block; + margin-left: 1.5rem; + overflow: hidden; + color: #959396; + text-overflow: ellipsis; + white-space: nowrap; +} +.search-result-rel-url { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .search-result-rel-url { + font-size: 0.625rem !important; + } +} + +.search-result-previews { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + margin-left: 0.5rem; + color: #959396; + word-wrap: break-word; + border-left: 1px solid; + border-left-color: #eeebee; +} +.search-result-previews { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .search-result-previews { + font-size: 0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .search-result-previews { + display: inline-block; + width: 60%; + padding-left: 0.5rem; + margin-left: 0; + vertical-align: top; + } +} + +.search-result-preview + .search-result-preview { + margin-top: 0.25rem; +} + +.search-result-highlight { + font-weight: bold; +} + +.search-no-result { + padding: 0.5rem 0.75rem; +} +.search-no-result { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-no-result { + font-size: 0.875rem !important; + } +} + +.search-button { + position: fixed; + right: 1rem; + bottom: 1rem; + display: flex; + width: 3.5rem; + height: 3.5rem; + background-color: #fff; + border: 1px solid rgba(0, 38, 118, 0.3); + border-radius: 1.75rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + align-items: center; + justify-content: center; +} + +.search-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1; + width: 0; + height: 0; + background-color: rgba(0, 0, 0, 0.3); + opacity: 0; + transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; +} + +.search-active .search { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; +} +.search-active .search-input-wrap { + height: 4rem; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-active .search-input-wrap { + width: 33.5rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + } +} +.search-active .search-input { + background-color: #fff; +} +@media (min-width: 50rem) { + .search-active .search-input { + padding-left: 2.3rem; + } +} +@media (min-width: 50rem) { + .search-active .search-label { + padding-left: 0.6rem; + } +} +.search-active .search-results { + display: block; +} +.search-active .search-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: opacity ease 400ms, width 0s, height 0s; +} +@media (min-width: 50rem) { + .search-active .main { + position: fixed; + right: 0; + left: 0; + } +} +.search-active .main-header { + padding-top: 4rem; +} +@media (min-width: 50rem) { + .search-active .main-header { + padding-top: 0; + } +} + +.table-wrapper { + display: block; + width: 100%; + max-width: 100%; + margin-bottom: 1.5rem; + overflow-x: auto; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} + +table { + display: table; + min-width: 100%; + border-collapse: separate; +} + +th, +td { + min-width: 7.5rem; + padding: 0.5rem 0.75rem; + background-color: #fff; + border-bottom: 1px solid rgba(238, 235, 238, 0.5); + border-left: 1px solid #eeebee; +} +th, +td { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + th, + td { + font-size: 0.875rem !important; + } +} +th:first-of-type, +td:first-of-type { + border-left: 0; +} + +tbody tr:last-of-type th, +tbody tr:last-of-type td { + border-bottom: 0; +} +tbody tr:last-of-type td { + padding-bottom: 0.75rem; +} + +thead th { + border-bottom: 1px solid #eeebee; +} + +:not(pre, figure) > code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: #f5f6fa; + border: 1px solid #eeebee; + border-radius: 4px; +} + +a:visited code { + border-color: #eeebee; +} + +div.highlighter-rouge, +div.listingblock > div.content, +figure.highlight { + margin-top: 0; + margin-bottom: 0.75rem; + background-color: #f5f6fa; + border-radius: 4px; + box-shadow: none; + -webkit-overflow-scrolling: touch; + position: relative; + padding: 0; +} +div.highlighter-rouge > button, +div.listingblock > div.content > button, +figure.highlight > button { + width: 0.75rem; + opacity: 0; + position: absolute; + top: 0; + right: 0; + border: 0.75rem solid #f5f6fa; + background-color: #f5f6fa; + color: #5c5962; + box-sizing: content-box; +} +div.highlighter-rouge > button svg, +div.listingblock > div.content > button svg, +figure.highlight > button svg { + fill: #5c5962; +} +div.highlighter-rouge > button:active, +div.listingblock > div.content > button:active, +figure.highlight > button:active { + text-decoration: none; + outline: none; + opacity: 1; +} +div.highlighter-rouge > button:focus, +div.listingblock > div.content > button:focus, +figure.highlight > button:focus { + opacity: 1; +} +div.highlighter-rouge:hover > button, +div.listingblock > div.content:hover > button, +figure.highlight:hover > button { + cursor: copy; + opacity: 1; +} + +div.highlighter-rouge div.highlight { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.highlighter-rouge pre.highlight, +div.highlighter-rouge code { + padding: 0; + margin: 0; + border: 0; +} + +div.listingblock { + margin-top: 0; + margin-bottom: 0.75rem; +} +div.listingblock div.content { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.listingblock div.content > pre, +div.listingblock code { + padding: 0; + margin: 0; + border: 0; +} + +figure.highlight pre, +figure.highlight :not(pre) > code { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} + +.highlight .table-wrapper { + padding: 0.75rem 0; + margin: 0; + border: 0; + box-shadow: none; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + min-width: 0; + padding: 0; + background-color: #f5f6fa; + border: 0; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .highlight .table-wrapper td, + .highlight .table-wrapper pre { + font-size: 0.75rem !important; + } +} +.highlight .table-wrapper td.gl { + width: 1em; + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.highlight .table-wrapper pre { + margin: 0; + line-height: 2; +} + +.code-example, +.listingblock > .title { + padding: 0.75rem; + margin-bottom: 0.75rem; + overflow: auto; + border: 1px solid #eeebee; + border-radius: 4px; +} +.code-example + .highlighter-rouge, +.code-example + .sectionbody .listingblock, +.code-example + .content, +.code-example + figure.highlight, +.listingblock > .title + .highlighter-rouge, +.listingblock > .title + .sectionbody .listingblock, +.listingblock > .title + .content, +.listingblock > .title + figure.highlight { + position: relative; + margin-top: -1rem; + border-right: 1px solid #eeebee; + border-bottom: 1px solid #eeebee; + border-left: 1px solid #eeebee; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +code.language-mermaid { + padding: 0; + background-color: inherit; + border: 0; +} + +.highlight, +pre.highlight { + background: #f5f6fa; + color: #5c5962; +} + +.highlight pre { + background: #f5f6fa; +} + +.text-grey-dk-000 { + color: #959396 !important; +} + +.text-grey-dk-100 { + color: #5c5962 !important; +} + +.text-grey-dk-200 { + color: #44434d !important; +} + +.text-grey-dk-250 { + color: #302d36 !important; +} + +.text-grey-dk-300, .staffer .staffer-badge { + color: #27262b !important; +} + +.text-grey-lt-000 { + color: #f5f6fa !important; +} + +.text-grey-lt-100 { + color: #eeebee !important; +} + +.text-grey-lt-200 { + color: #ecebed !important; +} + +.text-grey-lt-300 { + color: #e6e1e8 !important; +} + +.text-blue-000 { + color: #2c84fa !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #264caf !important; +} + +.text-blue-300 { + color: #183385 !important; +} + +.text-green-000 { + color: #41d693 !important; +} + +.text-green-100 { + color: #11b584 !important; +} + +.text-green-200 { + color: #009c7b !important; +} + +.text-green-300 { + color: #026e57 !important; +} + +.text-purple-000 { + color: #7253ed !important; +} + +.text-purple-100 { + color: #5e41d0 !important; +} + +.text-purple-200 { + color: #4e26af !important; +} + +.text-purple-300 { + color: #381885 !important; +} + +.text-yellow-000 { + color: #ffeb82 !important; +} + +.text-yellow-100 { + color: #fadf50 !important; +} + +.text-yellow-200 { + color: #f7d12e !important; +} + +.text-yellow-300 { + color: #e7af06 !important; +} + +.text-red-000 { + color: #f77e7e !important; +} + +.text-red-100 { + color: #f96e65 !important; +} + +.text-red-200 { + color: #e94c4c !important; +} + +.text-red-300 { + color: #dd2e2e !important; +} + +.bg-grey-dk-000 { + background-color: #959396 !important; +} + +.bg-grey-dk-100 { + background-color: #5c5962 !important; +} + +.bg-grey-dk-200 { + background-color: #44434d !important; +} + +.bg-grey-dk-250 { + background-color: #302d36 !important; +} + +.bg-grey-dk-300 { + background-color: #27262b !important; +} + +.bg-grey-lt-000 { + background-color: #f5f6fa !important; +} + +.bg-grey-lt-100 { + background-color: #eeebee !important; +} + +.bg-grey-lt-200, .staffer .staffer-badge { + background-color: #ecebed !important; +} + +.bg-grey-lt-300 { + background-color: #e6e1e8 !important; +} + +.bg-blue-000 { + background-color: #2c84fa !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #264caf !important; +} + +.bg-blue-300 { + background-color: #183385 !important; +} + +.bg-green-000 { + background-color: #41d693 !important; +} + +.bg-green-100 { + background-color: #11b584 !important; +} + +.bg-green-200 { + background-color: #009c7b !important; +} + +.bg-green-300 { + background-color: #026e57 !important; +} + +.bg-purple-000 { + background-color: #7253ed !important; +} + +.bg-purple-100 { + background-color: #5e41d0 !important; +} + +.bg-purple-200 { + background-color: #4e26af !important; +} + +.bg-purple-300 { + background-color: #381885 !important; +} + +.bg-yellow-000 { + background-color: #ffeb82 !important; +} + +.bg-yellow-100 { + background-color: #fadf50 !important; +} + +.bg-yellow-200 { + background-color: #f7d12e !important; +} + +.bg-yellow-300 { + background-color: #e7af06 !important; +} + +.bg-red-000 { + background-color: #f77e7e !important; +} + +.bg-red-100 { + background-color: #f96e65 !important; +} + +.bg-red-200 { + background-color: #e94c4c !important; +} + +.bg-red-300 { + background-color: #dd2e2e !important; +} + +.d-block { + display: block !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-none { + display: none !important; +} + +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.flex-justify-start { + justify-content: flex-start !important; +} + +.flex-justify-end { + justify-content: flex-end !important; +} + +.flex-justify-between { + justify-content: space-between !important; +} + +.flex-justify-around { + justify-content: space-around !important; +} + +.v-align-baseline { + vertical-align: baseline !important; +} + +.v-align-bottom { + vertical-align: bottom !important; +} + +.v-align-middle { + vertical-align: middle !important; +} + +.v-align-text-bottom { + vertical-align: text-bottom !important; +} + +.v-align-text-top { + vertical-align: text-top !important; +} + +.v-align-top { + vertical-align: top !important; +} + +.fs-1 { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .fs-1 { + font-size: 0.625rem !important; + } +} + +.fs-2, .schedule .schedule-event .time, +.schedule .schedule-event .location, .schedule .schedule-time { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .fs-2, .schedule .schedule-event .time, + .schedule .schedule-event .location, .schedule .schedule-time { + font-size: 0.75rem !important; + } +} + +.fs-3, .schedule .schedule-event .name { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .fs-3, .schedule .schedule-event .name { + font-size: 0.875rem !important; + } +} + +.fs-4 { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .fs-4 { + font-size: 1rem !important; + } +} + +.fs-5 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + .fs-5 { + font-size: 1.125rem !important; + } +} + +.fs-6 { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .fs-6 { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +.fs-7 { + font-size: 1.5rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-7 { + font-size: 2rem !important; + } +} + +.fs-8 { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-8 { + font-size: 2.25rem !important; + } +} + +.fs-9 { + font-size: 2.25rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-9 { + font-size: 2.625rem !important; + } +} + +.fs-10 { + font-size: 2.625rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-10 { + font-size: 3rem !important; + } +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-700, .schedule .schedule-event .name { + font-weight: 700 !important; +} + +.lh-0 { + line-height: 0 !important; +} + +.lh-default { + line-height: 1.4; +} + +.lh-tight { + line-height: 1.25; +} + +.ls-5 { + letter-spacing: 0.05em !important; +} + +.ls-10 { + letter-spacing: 0.1em !important; +} + +.ls-0 { + letter-spacing: 0 !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.list-style-none { + padding: 0 !important; + margin: 0 !important; + list-style: none !important; +} +.list-style-none li::before { + display: none !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.mxn-0 { + margin-right: -0 !important; + margin-left: -0 !important; +} + +.mx-0-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.mxn-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; +} + +.mx-1-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.mxn-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; +} + +.mx-2-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.mxn-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; +} + +.mx-3-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4, details { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.mxn-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; +} + +.mx-4-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.mxn-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; +} + +.mx-5-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-6 { + margin: 2rem !important; +} + +.mt-6 { + margin-top: 2rem !important; +} + +.mr-6 { + margin-right: 2rem !important; +} + +.mb-6 { + margin-bottom: 2rem !important; +} + +.ml-6 { + margin-left: 2rem !important; +} + +.mx-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; +} + +.my-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; +} + +.mxn-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; +} + +.mx-6-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-7 { + margin: 2.5rem !important; +} + +.mt-7 { + margin-top: 2.5rem !important; +} + +.mr-7 { + margin-right: 2.5rem !important; +} + +.mb-7 { + margin-bottom: 2.5rem !important; +} + +.ml-7 { + margin-left: 2.5rem !important; +} + +.mx-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; +} + +.my-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; +} + +.mxn-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; +} + +.mx-7-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-8 { + margin: 3rem !important; +} + +.mt-8 { + margin-top: 3rem !important; +} + +.mr-8 { + margin-right: 3rem !important; +} + +.mb-8 { + margin-bottom: 3rem !important; +} + +.ml-8 { + margin-left: 3rem !important; +} + +.mx-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.my-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.mxn-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; +} + +.mx-8-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-9 { + margin: 3.5rem !important; +} + +.mt-9 { + margin-top: 3.5rem !important; +} + +.mr-9 { + margin-right: 3.5rem !important; +} + +.mb-9 { + margin-bottom: 3.5rem !important; +} + +.ml-9 { + margin-left: 3.5rem !important; +} + +.mx-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; +} + +.my-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; +} + +.mxn-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; +} + +.mx-9-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-10 { + margin: 4rem !important; +} + +.mt-10 { + margin-top: 4rem !important; +} + +.mr-10 { + margin-right: 4rem !important; +} + +.mb-10 { + margin-bottom: 4rem !important; +} + +.ml-10 { + margin-left: 4rem !important; +} + +.mx-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; +} + +.my-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; +} + +.mxn-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; +} + +.mx-10-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 20rem) { + .m-xs-0 { + margin: 0 !important; + } + .mt-xs-0 { + margin-top: 0 !important; + } + .mr-xs-0 { + margin-right: 0 !important; + } + .mb-xs-0 { + margin-bottom: 0 !important; + } + .ml-xs-0 { + margin-left: 0 !important; + } + .mx-xs-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xs-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xs-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 20rem) { + .m-xs-1 { + margin: 0.25rem !important; + } + .mt-xs-1 { + margin-top: 0.25rem !important; + } + .mr-xs-1 { + margin-right: 0.25rem !important; + } + .mb-xs-1 { + margin-bottom: 0.25rem !important; + } + .ml-xs-1 { + margin-left: 0.25rem !important; + } + .mx-xs-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xs-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xs-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-2 { + margin: 0.5rem !important; + } + .mt-xs-2 { + margin-top: 0.5rem !important; + } + .mr-xs-2 { + margin-right: 0.5rem !important; + } + .mb-xs-2 { + margin-bottom: 0.5rem !important; + } + .ml-xs-2 { + margin-left: 0.5rem !important; + } + .mx-xs-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xs-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xs-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-3 { + margin: 0.75rem !important; + } + .mt-xs-3 { + margin-top: 0.75rem !important; + } + .mr-xs-3 { + margin-right: 0.75rem !important; + } + .mb-xs-3 { + margin-bottom: 0.75rem !important; + } + .ml-xs-3 { + margin-left: 0.75rem !important; + } + .mx-xs-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xs-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xs-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-4 { + margin: 1rem !important; + } + .mt-xs-4 { + margin-top: 1rem !important; + } + .mr-xs-4 { + margin-right: 1rem !important; + } + .mb-xs-4 { + margin-bottom: 1rem !important; + } + .ml-xs-4 { + margin-left: 1rem !important; + } + .mx-xs-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xs-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xs-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-5 { + margin: 1.5rem !important; + } + .mt-xs-5 { + margin-top: 1.5rem !important; + } + .mr-xs-5 { + margin-right: 1.5rem !important; + } + .mb-xs-5 { + margin-bottom: 1.5rem !important; + } + .ml-xs-5 { + margin-left: 1.5rem !important; + } + .mx-xs-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xs-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xs-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-6 { + margin: 2rem !important; + } + .mt-xs-6 { + margin-top: 2rem !important; + } + .mr-xs-6 { + margin-right: 2rem !important; + } + .mb-xs-6 { + margin-bottom: 2rem !important; + } + .ml-xs-6 { + margin-left: 2rem !important; + } + .mx-xs-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xs-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xs-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-7 { + margin: 2.5rem !important; + } + .mt-xs-7 { + margin-top: 2.5rem !important; + } + .mr-xs-7 { + margin-right: 2.5rem !important; + } + .mb-xs-7 { + margin-bottom: 2.5rem !important; + } + .ml-xs-7 { + margin-left: 2.5rem !important; + } + .mx-xs-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xs-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xs-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-8 { + margin: 3rem !important; + } + .mt-xs-8 { + margin-top: 3rem !important; + } + .mr-xs-8 { + margin-right: 3rem !important; + } + .mb-xs-8 { + margin-bottom: 3rem !important; + } + .ml-xs-8 { + margin-left: 3rem !important; + } + .mx-xs-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xs-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xs-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-9 { + margin: 3.5rem !important; + } + .mt-xs-9 { + margin-top: 3.5rem !important; + } + .mr-xs-9 { + margin-right: 3.5rem !important; + } + .mb-xs-9 { + margin-bottom: 3.5rem !important; + } + .ml-xs-9 { + margin-left: 3.5rem !important; + } + .mx-xs-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xs-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xs-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-10 { + margin: 4rem !important; + } + .mt-xs-10 { + margin-top: 4rem !important; + } + .mr-xs-10 { + margin-right: 4rem !important; + } + .mb-xs-10 { + margin-bottom: 4rem !important; + } + .ml-xs-10 { + margin-left: 4rem !important; + } + .mx-xs-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xs-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xs-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0 { + margin-left: 0 !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-sm-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1 { + margin-left: 0.25rem !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-sm-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2 { + margin-left: 0.5rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-sm-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-3 { + margin: 0.75rem !important; + } + .mt-sm-3 { + margin-top: 0.75rem !important; + } + .mr-sm-3 { + margin-right: 0.75rem !important; + } + .mb-sm-3 { + margin-bottom: 0.75rem !important; + } + .ml-sm-3 { + margin-left: 0.75rem !important; + } + .mx-sm-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-sm-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-sm-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-4 { + margin: 1rem !important; + } + .mt-sm-4 { + margin-top: 1rem !important; + } + .mr-sm-4 { + margin-right: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1rem !important; + } + .ml-sm-4 { + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-sm-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-sm-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-5 { + margin: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 1.5rem !important; + } + .mr-sm-5 { + margin-right: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 1.5rem !important; + } + .ml-sm-5 { + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-sm-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-sm-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-6 { + margin: 2rem !important; + } + .mt-sm-6 { + margin-top: 2rem !important; + } + .mr-sm-6 { + margin-right: 2rem !important; + } + .mb-sm-6 { + margin-bottom: 2rem !important; + } + .ml-sm-6 { + margin-left: 2rem !important; + } + .mx-sm-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-sm-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-sm-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-7 { + margin: 2.5rem !important; + } + .mt-sm-7 { + margin-top: 2.5rem !important; + } + .mr-sm-7 { + margin-right: 2.5rem !important; + } + .mb-sm-7 { + margin-bottom: 2.5rem !important; + } + .ml-sm-7 { + margin-left: 2.5rem !important; + } + .mx-sm-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-sm-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-sm-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-8 { + margin: 3rem !important; + } + .mt-sm-8 { + margin-top: 3rem !important; + } + .mr-sm-8 { + margin-right: 3rem !important; + } + .mb-sm-8 { + margin-bottom: 3rem !important; + } + .ml-sm-8 { + margin-left: 3rem !important; + } + .mx-sm-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-sm-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-sm-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-9 { + margin: 3.5rem !important; + } + .mt-sm-9 { + margin-top: 3.5rem !important; + } + .mr-sm-9 { + margin-right: 3.5rem !important; + } + .mb-sm-9 { + margin-bottom: 3.5rem !important; + } + .ml-sm-9 { + margin-left: 3.5rem !important; + } + .mx-sm-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-sm-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-sm-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-10 { + margin: 4rem !important; + } + .mt-sm-10 { + margin-top: 4rem !important; + } + .mr-sm-10 { + margin-right: 4rem !important; + } + .mb-sm-10 { + margin-bottom: 4rem !important; + } + .ml-sm-10 { + margin-left: 4rem !important; + } + .mx-sm-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-sm-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-sm-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 50rem) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mr-md-0 { + margin-right: 0 !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0 { + margin-left: 0 !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-md-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 50rem) { + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1 { + margin-left: 0.25rem !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-md-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 50rem) { + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2 { + margin-left: 0.5rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-md-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-3 { + margin: 0.75rem !important; + } + .mt-md-3 { + margin-top: 0.75rem !important; + } + .mr-md-3 { + margin-right: 0.75rem !important; + } + .mb-md-3 { + margin-bottom: 0.75rem !important; + } + .ml-md-3 { + margin-left: 0.75rem !important; + } + .mx-md-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-md-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-md-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 50rem) { + .m-md-4 { + margin: 1rem !important; + } + .mt-md-4 { + margin-top: 1rem !important; + } + .mr-md-4 { + margin-right: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1rem !important; + } + .ml-md-4 { + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-md-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-md-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 50rem) { + .m-md-5 { + margin: 1.5rem !important; + } + .mt-md-5 { + margin-top: 1.5rem !important; + } + .mr-md-5 { + margin-right: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 1.5rem !important; + } + .ml-md-5 { + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-md-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-md-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-6 { + margin: 2rem !important; + } + .mt-md-6 { + margin-top: 2rem !important; + } + .mr-md-6 { + margin-right: 2rem !important; + } + .mb-md-6 { + margin-bottom: 2rem !important; + } + .ml-md-6 { + margin-left: 2rem !important; + } + .mx-md-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-md-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-md-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 50rem) { + .m-md-7 { + margin: 2.5rem !important; + } + .mt-md-7 { + margin-top: 2.5rem !important; + } + .mr-md-7 { + margin-right: 2.5rem !important; + } + .mb-md-7 { + margin-bottom: 2.5rem !important; + } + .ml-md-7 { + margin-left: 2.5rem !important; + } + .mx-md-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-md-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-md-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-8 { + margin: 3rem !important; + } + .mt-md-8 { + margin-top: 3rem !important; + } + .mr-md-8 { + margin-right: 3rem !important; + } + .mb-md-8 { + margin-bottom: 3rem !important; + } + .ml-md-8 { + margin-left: 3rem !important; + } + .mx-md-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-md-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-md-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 50rem) { + .m-md-9 { + margin: 3.5rem !important; + } + .mt-md-9 { + margin-top: 3.5rem !important; + } + .mr-md-9 { + margin-right: 3.5rem !important; + } + .mb-md-9 { + margin-bottom: 3.5rem !important; + } + .ml-md-9 { + margin-left: 3.5rem !important; + } + .mx-md-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-md-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-md-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-10 { + margin: 4rem !important; + } + .mt-md-10 { + margin-top: 4rem !important; + } + .mr-md-10 { + margin-right: 4rem !important; + } + .mb-md-10 { + margin-bottom: 4rem !important; + } + .ml-md-10 { + margin-left: 4rem !important; + } + .mx-md-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-md-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-md-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0 { + margin-left: 0 !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-lg-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1 { + margin-left: 0.25rem !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-lg-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2 { + margin-left: 0.5rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-lg-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-3 { + margin: 0.75rem !important; + } + .mt-lg-3 { + margin-top: 0.75rem !important; + } + .mr-lg-3 { + margin-right: 0.75rem !important; + } + .mb-lg-3 { + margin-bottom: 0.75rem !important; + } + .ml-lg-3 { + margin-left: 0.75rem !important; + } + .mx-lg-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-lg-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-lg-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-4 { + margin: 1rem !important; + } + .mt-lg-4 { + margin-top: 1rem !important; + } + .mr-lg-4 { + margin-right: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1rem !important; + } + .ml-lg-4 { + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-lg-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-lg-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-5 { + margin: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 1.5rem !important; + } + .mr-lg-5 { + margin-right: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 1.5rem !important; + } + .ml-lg-5 { + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-lg-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-lg-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-6 { + margin: 2rem !important; + } + .mt-lg-6 { + margin-top: 2rem !important; + } + .mr-lg-6 { + margin-right: 2rem !important; + } + .mb-lg-6 { + margin-bottom: 2rem !important; + } + .ml-lg-6 { + margin-left: 2rem !important; + } + .mx-lg-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-lg-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-lg-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-7 { + margin: 2.5rem !important; + } + .mt-lg-7 { + margin-top: 2.5rem !important; + } + .mr-lg-7 { + margin-right: 2.5rem !important; + } + .mb-lg-7 { + margin-bottom: 2.5rem !important; + } + .ml-lg-7 { + margin-left: 2.5rem !important; + } + .mx-lg-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-lg-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-lg-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-8 { + margin: 3rem !important; + } + .mt-lg-8 { + margin-top: 3rem !important; + } + .mr-lg-8 { + margin-right: 3rem !important; + } + .mb-lg-8 { + margin-bottom: 3rem !important; + } + .ml-lg-8 { + margin-left: 3rem !important; + } + .mx-lg-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-lg-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-lg-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-9 { + margin: 3.5rem !important; + } + .mt-lg-9 { + margin-top: 3.5rem !important; + } + .mr-lg-9 { + margin-right: 3.5rem !important; + } + .mb-lg-9 { + margin-bottom: 3.5rem !important; + } + .ml-lg-9 { + margin-left: 3.5rem !important; + } + .mx-lg-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-lg-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-lg-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-10 { + margin: 4rem !important; + } + .mt-lg-10 { + margin-top: 4rem !important; + } + .mr-lg-10 { + margin-right: 4rem !important; + } + .mb-lg-10 { + margin-bottom: 4rem !important; + } + .ml-lg-10 { + margin-left: 4rem !important; + } + .mx-lg-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-lg-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-lg-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0 { + margin-left: 0 !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xl-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1 { + margin-left: 0.25rem !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xl-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2 { + margin-left: 0.5rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xl-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-3 { + margin: 0.75rem !important; + } + .mt-xl-3 { + margin-top: 0.75rem !important; + } + .mr-xl-3 { + margin-right: 0.75rem !important; + } + .mb-xl-3 { + margin-bottom: 0.75rem !important; + } + .ml-xl-3 { + margin-left: 0.75rem !important; + } + .mx-xl-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xl-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xl-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-4 { + margin: 1rem !important; + } + .mt-xl-4 { + margin-top: 1rem !important; + } + .mr-xl-4 { + margin-right: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1rem !important; + } + .ml-xl-4 { + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xl-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xl-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-5 { + margin: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 1.5rem !important; + } + .mr-xl-5 { + margin-right: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 1.5rem !important; + } + .ml-xl-5 { + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xl-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xl-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-6 { + margin: 2rem !important; + } + .mt-xl-6 { + margin-top: 2rem !important; + } + .mr-xl-6 { + margin-right: 2rem !important; + } + .mb-xl-6 { + margin-bottom: 2rem !important; + } + .ml-xl-6 { + margin-left: 2rem !important; + } + .mx-xl-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xl-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xl-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-7 { + margin: 2.5rem !important; + } + .mt-xl-7 { + margin-top: 2.5rem !important; + } + .mr-xl-7 { + margin-right: 2.5rem !important; + } + .mb-xl-7 { + margin-bottom: 2.5rem !important; + } + .ml-xl-7 { + margin-left: 2.5rem !important; + } + .mx-xl-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xl-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xl-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-8 { + margin: 3rem !important; + } + .mt-xl-8 { + margin-top: 3rem !important; + } + .mr-xl-8 { + margin-right: 3rem !important; + } + .mb-xl-8 { + margin-bottom: 3rem !important; + } + .ml-xl-8 { + margin-left: 3rem !important; + } + .mx-xl-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xl-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xl-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-9 { + margin: 3.5rem !important; + } + .mt-xl-9 { + margin-top: 3.5rem !important; + } + .mr-xl-9 { + margin-right: 3.5rem !important; + } + .mb-xl-9 { + margin-bottom: 3.5rem !important; + } + .ml-xl-9 { + margin-left: 3.5rem !important; + } + .mx-xl-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xl-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xl-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-10 { + margin: 4rem !important; + } + .mt-xl-10 { + margin-top: 4rem !important; + } + .mr-xl-10 { + margin-right: 4rem !important; + } + .mb-xl-10 { + margin-bottom: 4rem !important; + } + .ml-xl-10 { + margin-left: 4rem !important; + } + .mx-xl-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xl-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xl-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 2rem !important; +} + +.pt-6 { + padding-top: 2rem !important; +} + +.pr-6 { + padding-right: 2rem !important; +} + +.pb-6 { + padding-bottom: 2rem !important; +} + +.pl-6 { + padding-left: 2rem !important; +} + +.px-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; +} + +.py-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; +} + +.p-7 { + padding: 2.5rem !important; +} + +.pt-7 { + padding-top: 2.5rem !important; +} + +.pr-7 { + padding-right: 2.5rem !important; +} + +.pb-7 { + padding-bottom: 2.5rem !important; +} + +.pl-7 { + padding-left: 2.5rem !important; +} + +.px-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; +} + +.py-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; +} + +.p-8 { + padding: 3rem !important; +} + +.pt-8 { + padding-top: 3rem !important; +} + +.pr-8 { + padding-right: 3rem !important; +} + +.pb-8 { + padding-bottom: 3rem !important; +} + +.pl-8 { + padding-left: 3rem !important; +} + +.px-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-9 { + padding: 3.5rem !important; +} + +.pt-9 { + padding-top: 3.5rem !important; +} + +.pr-9 { + padding-right: 3.5rem !important; +} + +.pb-9 { + padding-bottom: 3.5rem !important; +} + +.pl-9 { + padding-left: 3.5rem !important; +} + +.px-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; +} + +.py-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; +} + +.p-10 { + padding: 4rem !important; +} + +.pt-10 { + padding-top: 4rem !important; +} + +.pr-10 { + padding-right: 4rem !important; +} + +.pb-10 { + padding-bottom: 4rem !important; +} + +.pl-10 { + padding-left: 4rem !important; +} + +.px-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; +} + +.py-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; +} + +@media (min-width: 20rem) { + .p-xs-0 { + padding: 0 !important; + } + .pt-xs-0 { + padding-top: 0 !important; + } + .pr-xs-0 { + padding-right: 0 !important; + } + .pb-xs-0 { + padding-bottom: 0 !important; + } + .pl-xs-0 { + padding-left: 0 !important; + } + .px-xs-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xs-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xs-1 { + padding: 0.25rem !important; + } + .pt-xs-1 { + padding-top: 0.25rem !important; + } + .pr-xs-1 { + padding-right: 0.25rem !important; + } + .pb-xs-1 { + padding-bottom: 0.25rem !important; + } + .pl-xs-1 { + padding-left: 0.25rem !important; + } + .px-xs-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xs-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xs-2 { + padding: 0.5rem !important; + } + .pt-xs-2 { + padding-top: 0.5rem !important; + } + .pr-xs-2 { + padding-right: 0.5rem !important; + } + .pb-xs-2 { + padding-bottom: 0.5rem !important; + } + .pl-xs-2 { + padding-left: 0.5rem !important; + } + .px-xs-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xs-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xs-3 { + padding: 0.75rem !important; + } + .pt-xs-3 { + padding-top: 0.75rem !important; + } + .pr-xs-3 { + padding-right: 0.75rem !important; + } + .pb-xs-3 { + padding-bottom: 0.75rem !important; + } + .pl-xs-3 { + padding-left: 0.75rem !important; + } + .px-xs-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xs-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xs-4 { + padding: 1rem !important; + } + .pt-xs-4 { + padding-top: 1rem !important; + } + .pr-xs-4 { + padding-right: 1rem !important; + } + .pb-xs-4 { + padding-bottom: 1rem !important; + } + .pl-xs-4 { + padding-left: 1rem !important; + } + .px-xs-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xs-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xs-5 { + padding: 1.5rem !important; + } + .pt-xs-5 { + padding-top: 1.5rem !important; + } + .pr-xs-5 { + padding-right: 1.5rem !important; + } + .pb-xs-5 { + padding-bottom: 1.5rem !important; + } + .pl-xs-5 { + padding-left: 1.5rem !important; + } + .px-xs-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xs-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xs-6 { + padding: 2rem !important; + } + .pt-xs-6 { + padding-top: 2rem !important; + } + .pr-xs-6 { + padding-right: 2rem !important; + } + .pb-xs-6 { + padding-bottom: 2rem !important; + } + .pl-xs-6 { + padding-left: 2rem !important; + } + .px-xs-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xs-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xs-7 { + padding: 2.5rem !important; + } + .pt-xs-7 { + padding-top: 2.5rem !important; + } + .pr-xs-7 { + padding-right: 2.5rem !important; + } + .pb-xs-7 { + padding-bottom: 2.5rem !important; + } + .pl-xs-7 { + padding-left: 2.5rem !important; + } + .px-xs-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xs-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xs-8 { + padding: 3rem !important; + } + .pt-xs-8 { + padding-top: 3rem !important; + } + .pr-xs-8 { + padding-right: 3rem !important; + } + .pb-xs-8 { + padding-bottom: 3rem !important; + } + .pl-xs-8 { + padding-left: 3rem !important; + } + .px-xs-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xs-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xs-9 { + padding: 3.5rem !important; + } + .pt-xs-9 { + padding-top: 3.5rem !important; + } + .pr-xs-9 { + padding-right: 3.5rem !important; + } + .pb-xs-9 { + padding-bottom: 3.5rem !important; + } + .pl-xs-9 { + padding-left: 3.5rem !important; + } + .px-xs-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xs-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xs-10 { + padding: 4rem !important; + } + .pt-xs-10 { + padding-top: 4rem !important; + } + .pr-xs-10 { + padding-right: 4rem !important; + } + .pb-xs-10 { + padding-bottom: 4rem !important; + } + .pl-xs-10 { + padding-left: 4rem !important; + } + .px-xs-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xs-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 31.25rem) { + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0 { + padding-left: 0 !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1 { + padding-left: 0.25rem !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2 { + padding-left: 0.5rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-sm-3 { + padding: 0.75rem !important; + } + .pt-sm-3 { + padding-top: 0.75rem !important; + } + .pr-sm-3 { + padding-right: 0.75rem !important; + } + .pb-sm-3 { + padding-bottom: 0.75rem !important; + } + .pl-sm-3 { + padding-left: 0.75rem !important; + } + .px-sm-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-sm-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-sm-4 { + padding: 1rem !important; + } + .pt-sm-4 { + padding-top: 1rem !important; + } + .pr-sm-4 { + padding-right: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1rem !important; + } + .pl-sm-4 { + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-sm-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-sm-5 { + padding: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 1.5rem !important; + } + .pr-sm-5 { + padding-right: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 1.5rem !important; + } + .pl-sm-5 { + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-sm-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-sm-6 { + padding: 2rem !important; + } + .pt-sm-6 { + padding-top: 2rem !important; + } + .pr-sm-6 { + padding-right: 2rem !important; + } + .pb-sm-6 { + padding-bottom: 2rem !important; + } + .pl-sm-6 { + padding-left: 2rem !important; + } + .px-sm-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-sm-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-sm-7 { + padding: 2.5rem !important; + } + .pt-sm-7 { + padding-top: 2.5rem !important; + } + .pr-sm-7 { + padding-right: 2.5rem !important; + } + .pb-sm-7 { + padding-bottom: 2.5rem !important; + } + .pl-sm-7 { + padding-left: 2.5rem !important; + } + .px-sm-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-sm-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-sm-8 { + padding: 3rem !important; + } + .pt-sm-8 { + padding-top: 3rem !important; + } + .pr-sm-8 { + padding-right: 3rem !important; + } + .pb-sm-8 { + padding-bottom: 3rem !important; + } + .pl-sm-8 { + padding-left: 3rem !important; + } + .px-sm-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-sm-9 { + padding: 3.5rem !important; + } + .pt-sm-9 { + padding-top: 3.5rem !important; + } + .pr-sm-9 { + padding-right: 3.5rem !important; + } + .pb-sm-9 { + padding-bottom: 3.5rem !important; + } + .pl-sm-9 { + padding-left: 3.5rem !important; + } + .px-sm-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-sm-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-sm-10 { + padding: 4rem !important; + } + .pt-sm-10 { + padding-top: 4rem !important; + } + .pr-sm-10 { + padding-right: 4rem !important; + } + .pb-sm-10 { + padding-bottom: 4rem !important; + } + .pl-sm-10 { + padding-left: 4rem !important; + } + .px-sm-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-sm-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 50rem) { + .p-md-0 { + padding: 0 !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pr-md-0 { + padding-right: 0 !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0 { + padding-left: 0 !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1 { + padding-left: 0.25rem !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2 { + padding-left: 0.5rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-md-3 { + padding: 0.75rem !important; + } + .pt-md-3 { + padding-top: 0.75rem !important; + } + .pr-md-3 { + padding-right: 0.75rem !important; + } + .pb-md-3 { + padding-bottom: 0.75rem !important; + } + .pl-md-3 { + padding-left: 0.75rem !important; + } + .px-md-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-md-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-md-4 { + padding: 1rem !important; + } + .pt-md-4 { + padding-top: 1rem !important; + } + .pr-md-4 { + padding-right: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1rem !important; + } + .pl-md-4 { + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-md-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-md-5 { + padding: 1.5rem !important; + } + .pt-md-5 { + padding-top: 1.5rem !important; + } + .pr-md-5 { + padding-right: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 1.5rem !important; + } + .pl-md-5 { + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-md-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-md-6 { + padding: 2rem !important; + } + .pt-md-6 { + padding-top: 2rem !important; + } + .pr-md-6 { + padding-right: 2rem !important; + } + .pb-md-6 { + padding-bottom: 2rem !important; + } + .pl-md-6 { + padding-left: 2rem !important; + } + .px-md-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-md-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-md-7 { + padding: 2.5rem !important; + } + .pt-md-7 { + padding-top: 2.5rem !important; + } + .pr-md-7 { + padding-right: 2.5rem !important; + } + .pb-md-7 { + padding-bottom: 2.5rem !important; + } + .pl-md-7 { + padding-left: 2.5rem !important; + } + .px-md-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-md-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-md-8 { + padding: 3rem !important; + } + .pt-md-8 { + padding-top: 3rem !important; + } + .pr-md-8 { + padding-right: 3rem !important; + } + .pb-md-8 { + padding-bottom: 3rem !important; + } + .pl-md-8 { + padding-left: 3rem !important; + } + .px-md-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-md-9 { + padding: 3.5rem !important; + } + .pt-md-9 { + padding-top: 3.5rem !important; + } + .pr-md-9 { + padding-right: 3.5rem !important; + } + .pb-md-9 { + padding-bottom: 3.5rem !important; + } + .pl-md-9 { + padding-left: 3.5rem !important; + } + .px-md-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-md-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-md-10 { + padding: 4rem !important; + } + .pt-md-10 { + padding-top: 4rem !important; + } + .pr-md-10 { + padding-right: 4rem !important; + } + .pb-md-10 { + padding-bottom: 4rem !important; + } + .pl-md-10 { + padding-left: 4rem !important; + } + .px-md-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-md-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 66.5rem) { + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0 { + padding-left: 0 !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1 { + padding-left: 0.25rem !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2 { + padding-left: 0.5rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-lg-3 { + padding: 0.75rem !important; + } + .pt-lg-3 { + padding-top: 0.75rem !important; + } + .pr-lg-3 { + padding-right: 0.75rem !important; + } + .pb-lg-3 { + padding-bottom: 0.75rem !important; + } + .pl-lg-3 { + padding-left: 0.75rem !important; + } + .px-lg-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-lg-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-lg-4 { + padding: 1rem !important; + } + .pt-lg-4 { + padding-top: 1rem !important; + } + .pr-lg-4 { + padding-right: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1rem !important; + } + .pl-lg-4 { + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-lg-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-lg-5 { + padding: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 1.5rem !important; + } + .pr-lg-5 { + padding-right: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 1.5rem !important; + } + .pl-lg-5 { + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-lg-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-lg-6 { + padding: 2rem !important; + } + .pt-lg-6 { + padding-top: 2rem !important; + } + .pr-lg-6 { + padding-right: 2rem !important; + } + .pb-lg-6 { + padding-bottom: 2rem !important; + } + .pl-lg-6 { + padding-left: 2rem !important; + } + .px-lg-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-lg-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-lg-7 { + padding: 2.5rem !important; + } + .pt-lg-7 { + padding-top: 2.5rem !important; + } + .pr-lg-7 { + padding-right: 2.5rem !important; + } + .pb-lg-7 { + padding-bottom: 2.5rem !important; + } + .pl-lg-7 { + padding-left: 2.5rem !important; + } + .px-lg-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-lg-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-lg-8 { + padding: 3rem !important; + } + .pt-lg-8 { + padding-top: 3rem !important; + } + .pr-lg-8 { + padding-right: 3rem !important; + } + .pb-lg-8 { + padding-bottom: 3rem !important; + } + .pl-lg-8 { + padding-left: 3rem !important; + } + .px-lg-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-lg-9 { + padding: 3.5rem !important; + } + .pt-lg-9 { + padding-top: 3.5rem !important; + } + .pr-lg-9 { + padding-right: 3.5rem !important; + } + .pb-lg-9 { + padding-bottom: 3.5rem !important; + } + .pl-lg-9 { + padding-left: 3.5rem !important; + } + .px-lg-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-lg-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-lg-10 { + padding: 4rem !important; + } + .pt-lg-10 { + padding-top: 4rem !important; + } + .pr-lg-10 { + padding-right: 4rem !important; + } + .pb-lg-10 { + padding-bottom: 4rem !important; + } + .pl-lg-10 { + padding-left: 4rem !important; + } + .px-lg-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-lg-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 87.5rem) { + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0 { + padding-left: 0 !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1 { + padding-left: 0.25rem !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2 { + padding-left: 0.5rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xl-3 { + padding: 0.75rem !important; + } + .pt-xl-3 { + padding-top: 0.75rem !important; + } + .pr-xl-3 { + padding-right: 0.75rem !important; + } + .pb-xl-3 { + padding-bottom: 0.75rem !important; + } + .pl-xl-3 { + padding-left: 0.75rem !important; + } + .px-xl-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xl-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xl-4 { + padding: 1rem !important; + } + .pt-xl-4 { + padding-top: 1rem !important; + } + .pr-xl-4 { + padding-right: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1rem !important; + } + .pl-xl-4 { + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xl-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xl-5 { + padding: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 1.5rem !important; + } + .pr-xl-5 { + padding-right: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 1.5rem !important; + } + .pl-xl-5 { + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xl-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xl-6 { + padding: 2rem !important; + } + .pt-xl-6 { + padding-top: 2rem !important; + } + .pr-xl-6 { + padding-right: 2rem !important; + } + .pb-xl-6 { + padding-bottom: 2rem !important; + } + .pl-xl-6 { + padding-left: 2rem !important; + } + .px-xl-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xl-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xl-7 { + padding: 2.5rem !important; + } + .pt-xl-7 { + padding-top: 2.5rem !important; + } + .pr-xl-7 { + padding-right: 2.5rem !important; + } + .pb-xl-7 { + padding-bottom: 2.5rem !important; + } + .pl-xl-7 { + padding-left: 2.5rem !important; + } + .px-xl-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xl-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xl-8 { + padding: 3rem !important; + } + .pt-xl-8 { + padding-top: 3rem !important; + } + .pr-xl-8 { + padding-right: 3rem !important; + } + .pb-xl-8 { + padding-bottom: 3rem !important; + } + .pl-xl-8 { + padding-left: 3rem !important; + } + .px-xl-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xl-9 { + padding: 3.5rem !important; + } + .pt-xl-9 { + padding-top: 3.5rem !important; + } + .pr-xl-9 { + padding-right: 3.5rem !important; + } + .pb-xl-9 { + padding-bottom: 3.5rem !important; + } + .pl-xl-9 { + padding-left: 3.5rem !important; + } + .px-xl-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xl-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xl-10 { + padding: 4rem !important; + } + .pt-xl-10 { + padding-top: 4rem !important; + } + .pr-xl-10 { + padding-right: 4rem !important; + } + .pb-xl-10 { + padding-bottom: 4rem !important; + } + .pl-xl-10 { + padding-left: 4rem !important; + } + .px-xl-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xl-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media print { + .site-footer, + .site-button, + #edit-this-page, + #back-to-top, + .site-nav, + .main-header { + display: none !important; + } + .side-bar { + width: 100%; + height: auto; + border-right: 0 !important; + } + .site-header { + border-bottom: 1px solid #eeebee; + } + .site-title { + font-size: 1rem !important; + font-weight: 700 !important; + } + .text-small { + font-size: 8pt !important; + } + pre.highlight { + border: 1px solid #eeebee; + } + .main { + max-width: none; + margin-left: 0; + } +} +a.skip-to-main { + left: -999px; + position: absolute; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; + z-index: -999; +} + +a.skip-to-main:focus, +a.skip-to-main:active { + color: #002676; + background-color: #fff; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #5e41d0; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #fff; +} + +.main-content .module, +.module, .announcement { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05); + margin: 1rem -1rem; + display: flex; + flex-direction: column; + min-width: 0; + padding: 0 1rem; + position: relative; + word-wrap: break-word; +} +@media (min-width: 50rem) { + .main-content .module, + .module, .announcement { + border-radius: 4px; + margin: 1rem 0; + } +} +.module > :first-child, .announcement > :first-child { + border-top: none !important; +} +.module > :last-child, .announcement > :last-child { + border-bottom: none !important; +} +.module .label, +.module .staffer .staffer-badge, +.staffer .module .staffer-badge, .announcement .label, .announcement .staffer .staffer-badge, .staffer .announcement .staffer-badge { + border-radius: 4px; + margin-left: 0; + user-select: none; +} + +.main-content .module h1:first-child, +.main-content .module h2:first-child, +.main-content .module h3:first-child, +.main-content .module h4:first-child, +.main-content .module h5:first-child, +.main-content .module h6:first-child, +.module h1:first-child, +.module h2:first-child, +.module h3:first-child, +.module h4:first-child, +.module h5:first-child, +.module h6:first-child { + margin-top: 1rem; +} +.main-content .module > dl, +.module > dl { + border-bottom: 1px solid #eeebee; + border-top: 1px solid #eeebee; + display: grid; + grid-template-columns: max-content 1fr; + margin: 0.5rem -1rem; +} +.main-content .module > dl:first-child, +.module > dl:first-child { + margin-top: 0; +} +.main-content .module > dl:last-child, +.module > dl:last-child { + margin-bottom: 0; +} +@media (min-width: 66.5rem) { + .main-content .module > dl, + .module > dl { + grid-template-columns: 1fr 7fr; + } +} +.main-content .module > dl > dd, .main-content .module > dl > dt, +.module > dl > dd, +.module > dl > dt { + margin: 0; + padding: 0.5rem; +} +@media (min-width: 31.25rem) { + .main-content .module > dl > dd, .main-content .module > dl > dt, + .module > dl > dd, + .module > dl > dt { + padding: 0.5rem 1rem; + } +} +.main-content .module > dl > dt, +.module > dl > dt { + border-top: 1px solid #eeebee; + font-weight: normal; + text-align: right; +} +.main-content .module > dl > dt + dd, +.module > dl > dt + dd { + border-top: 1px solid #eeebee; +} +.main-content .module > dl > dt:first-child, +.module > dl > dt:first-child { + border-top: none; +} +.main-content .module > dl > dt:first-child + dd, +.module > dl > dt:first-child + dd { + border-top: none; +} +.main-content .module > dl > dt::after, +.module > dl > dt::after { + content: ":"; +} +.main-content .module > dl > dd + dd, +.module > dl > dd + dd { + padding-top: 0; +} +.main-content .module > dl > dd ol, .main-content .module > dl > dd ul, .main-content .module > dl > dd dl, +.module > dl > dd ol, +.module > dl > dd ul, +.module > dl > dd dl { + margin: 0; +} +.main-content .module > dl > dd dl, +.module > dl > dd dl { + display: flex; + flex-direction: column; +} +@media (min-width: 31.25rem) { + .main-content .module > dl > dd dl, + .module > dl > dd dl { + flex-direction: row; + } +} +.main-content .module > dl > dd dl dt, +.module > dl > dd dl dt { + flex: 0 0 62.5%; + margin: 0; +} +.main-content .module > dl > dd dl dd, +.module > dl > dd dl dd { + margin: 0; +} + +.schedule { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05); + margin: 1rem -1rem; + overflow-x: scroll; + position: relative; +} +@media (min-width: 50rem) { + .schedule { + border-radius: 4px; + margin: 1rem 0; + } +} +.schedule li::before { + display: none; +} +.schedule ul.schedule-timeline, +.schedule ul.schedule-group, +.schedule ul.schedule-events { + margin-top: 0; + padding-left: 0; +} +.schedule ul.schedule-timeline { + margin: 40px auto 0; + position: absolute; + width: 100%; +} +.schedule .schedule-time { + color: #44434d; + height: 40px; + margin: 0; + padding: 0.5rem; + position: relative; +} +.schedule .schedule-time::after { + background-color: #eeebee; + content: ""; + height: 1px; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.schedule .schedule-group { + display: flex; + margin-bottom: 0; + position: relative; +} +.schedule .schedule-day { + border-left: 1px solid #eeebee; + flex: 1 0 0; + margin: 0; + min-width: 120px; +} +.schedule .schedule-day:first-of-type { + border-left: 0; +} +.schedule h2.schedule-header { + align-items: center; + display: flex; + font-size: 18px !important; + height: 40px; + justify-content: center; + margin: 0; +} +.schedule .schedule-events { + display: flex; + padding: 0; + position: relative; +} +.schedule .schedule-event { + background-color: #959396; + border-radius: 4px; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), inset 0 -3px 0 rgba(0, 0, 0, 0.2); + color: #fff; + float: left; + height: 100%; + margin: 0; + padding: 0.25rem 0.5rem; + position: absolute; + width: 100%; +} +.schedule .schedule-event.lecture { + background-color: #e6e1e8; + color: #27262b; +} +.schedule .schedule-event.section { + background-color: #3f17dc; +} +.schedule .schedule-event.office-hours { + background-color: #006953; +} + +.staffer { + display: flex; + margin: 1rem 0; +} +.staffer .staffer-image { + border-radius: 50%; + height: 100px; + margin-right: 1rem; + width: auto; +} +.staffer p, +.staffer .staffer-name { + margin: 0.25rem !important; +} +.staffer p .anchor-heading, +.staffer .staffer-name .anchor-heading { + width: 1.8rem; + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.staffer .staffer-badge { + -webkit-user-select: none; + user-select: none; +} +.staffer .staffer-meta { + color: #27262b; +} + +html { + font-size: 16px; +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #5c5962; + background-color: #fff; + overflow-wrap: break-word; +} + +a, +.main-content .anchor-heading svg { + color: #002676; +} +a:hover, a:focus, +.main-content .anchor-heading svg:hover, +.main-content .anchor-heading svg:focus { + color: #0047dc; +} + +a:not([class]):hover { + text-decoration-color: #0047dc; +} + +h1, h2, h3, h4, h5, h6, +.serif { + font-family: "Source Serif 4", "Georiga", "Baskerville", serif; +} + +.label-green:not(g) { + background-color: #026e57; +} + +.label-red:not(g) { + background-color: #dd2e2e; +} + +code { + padding: 0.2em 0.4em; + border: none; +} + +iframe { + max-width: 100%; +} + +summary { + width: 100%; +} + +.main-content-wrap { + max-width: 1200px; + margin: auto; +} + +.main-content dl { + display: block; + grid-template-columns: none; +} +.main-content dt { + font-weight: 700; + text-align: start; +} +.main-content dt::after { + content: normal; +} +.main-content dd { + font-weight: normal; +} +.main-content dd + dt { + margin-top: 1em; +} + +.text-lighter { + color: #5c5962; +} + +a[target=_blank]::after { + font-family: "Font Awesome 6 Free"; + font-weight: 900; + content: "\f08e"; + padding: 0 0.25rem; +} + +/*# sourceMappingURL=just-the-docs-default.css.map */ \ No newline at end of file diff --git a/_site/assets/css/just-the-docs-default.css.map b/_site/assets/css/just-the-docs-default.css.map new file mode 100644 index 0000000..8179431 --- /dev/null +++ b/_site/assets/css/just-the-docs-default.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/snytax_highliters/a11y-light.css","../../_sass/berkeley/berkeley.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/vendor/normalize.scss/normalize.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/base.scss","../../_sass/color_schemes/light.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/_variables.scss","../../_sass/berkeley/variables.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/content.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/navigation.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/labels.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/buttons.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_buttons.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/search.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/tables.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/code.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_colors.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_lists.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_spacing.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/print.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/skiptomain.scss","just-the-docs-default.scss","../../_sass/just-the-class/card.scss","../../_sass/just-the-class/module.scss","../../_sass/just-the-class/schedule.scss","../../_sass/just-the-class/staffer.scss"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;ACCQ;ADCR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;;;AAGF;EACE;;;AEtIF;AAEA;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AC1VF;EACE,cCEa;;;ADCf;EACE;;;AAGF;EACE;;AEmBA;EACE;;AClBA;EHHJ;IEyBI;;;;AFnBJ;EACE,aIfiB;EJgBjB;EACA,aIbiB;EJcjB,OIUY;EJTZ,kBIOM;EJNN;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;EACA,aI1CyB;EJ2CzB,OIlBY;;;AJqBd;EACE;EACA;;;AAGF;EACE,OKhDc;ELiDd;;;AAGF;EACE;EACA,uBI/BY;EJgCZ;;AAEA;EACE;;;AAIJ;EACE,aIvEiB;EJwEjB;EACA,aIvEiB;;;AJ0EnB;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,kBI/DY;EJgEZ;;;AAIF;EACE;EAGA;EACA;EACA;EACA;;;AM7GF;EACE;EACA;EACA;EACA,kBF6BY;;ADrBV;EGZJ;IAOI;IACA;IACA,OFwFW;IEvFX;IACA;IACA;;;AHAA;EGZJ;IAgBI;IACA,WDGQ;;;AFRR;EGQF;IAEI,aF2ES;;;ADrFX;EGQF;IAQI;;;AAOF;EACE;EACA,kBFJQ;;ADrBV;EGuBA;IAKI;IACA,kBFdA;;;AEiBF;EACE;;AHjCJ;EGgCE;IAII;;;;AAOV;EACE;;AH5CE;EG2CJ;IAII;IACA,WD1DY;;;;AC8DhB;EACE,aFaK;EEZL,gBFYK;EDvDL,eCuDK;EDtDL,cCsDK;;ADlEH;EGoDJ;IHrCI,eCqDG;IDpDH,cCoDG;;;ADpEH;EGoDJ;IAOI,aFSG;IERH,gBFQG;;;;AEJP;EACE;EACA;;AHlEE;EGgEJ;IAKI;IACA;IACA,QFmBY;;;;AEfhB;AAAA;AAAA;EAGE;;AH9EE;EG2EJ;AAAA;AAAA;IAMI,ODzEQ;;;;AC6EZ;EACE;;AAEA;EACE;;AHzFA;EGqFJ;IAQI;IACA,aFxBG;IEyBH,gBF7BG;IE8BH;IACA;;;;AAIJ;EACE;EACA,YFbc;EEcd;;AHxGE;EGqGJ;IAMI,QFjBY;IEkBZ,YFlBY;IEmBZ;;;;AAIJ;EACE;EACA;EACA;EACA;EACA,aFrDK;EEsDL,gBFtDK;EEuDL,OFpGY;EDTZ,eCuDK;EDtDL,cCsDK;;ADlEH;EGiHJ;IHlGI,eCqDG;IDpDH,cCoDG;;;AF/BL;EACE;;ACtCA;EGiHJ;IJvEI;IACA,aEhDuB;;;ADKvB;EGiHJ;IAcI,aF/DG;IEgEH,gBFhEG;;;;AE+EP;EACE;EACA;EACA,SFhFK;EEiFL;;;AHnJE;EGuJF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBFzGM;EE0GN;;AHlLE;EG+KJ;IAMI;IACA;;;;AAMJ;EACE;EACA;EACA;EACA,aF9HK;EE+HL,gBF/HK;EEgIL,OFlLY;EDLZ,eCuDK;EDtDL,cCsDK;;ADlEH;EG4LJ;IH7KI,eCqDG;IDpDH,cCoDG;;;AFvEL;EACE;;ACEA;EG4LJ;IJ1LI;;;ACFA;EG4LJ;IAaI;IACA;;;;AAIJ;EACE,OF5IK;EE6IL,QF7IK;EE8IL,ODlNc;;;AERhB;EACE,aHEoB;;AGApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YH+CC;;AG3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OHfM;EGgBN;EACA;;AL1BN;EACE;;ACRA;EI2BE;ILfF;;;ACZA;EI2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OH7CM;EG8CN;;AAMJ;EACE;;AAIJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAmBE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAKN;EACE;EACA;EACA,OHnFG;EGoFH;EACA,eHzFG;EG0FH,cH1FG;EG2FH;;AJ1JA;EImJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OFtKU;EEuKV;;AAYF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE,YH9JG;;;AI3EP;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;ANoBF;EACE;;AClBA;EKLF;IN2BE;;;ACtBA;EDOF;IACE;;;ACRA;EKLF;INiBE;;;AMPA;EACE;EACA,YJ+DC;EI9DD,aJuDC;EItDD,gBJsDC;EIrDD;EAEE,eJ0DD;EIzDC,cJqDD;;ADlEH;EKKA;IAeI,YJgDD;II/CC;IAEE,eJ6CH;II5CG,cJ4CH;;;AIrCD;EACE,OJkCD;EIjCC,QJiCD;EIhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OJWC;EIVD,QJUC;EITD;EACA,OH/DU;;AFCZ;EKqDA;IAYI,OJGD;IIFC,QJED;IIDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cJtBC;EIuBD;;AAEA;EACE;;AAEA;EACE,OJ7EI;;AIgFN;EACE,OJjFI;;AIuFR;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;;AN/HA;EACE;;ACEA;EKuHJ;INrHI;;;ACFA;EKuHJ;IASI;IACA,YJ/DG;IIgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OHpJM;;AGuJR;EACE,OHxJM;;;AGiKhB;EACE;EACA;;ANrKA;EACE;;ACEA;EKgKJ;IN9JI;;;AMmKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;ALjLA;EKgKJ;IAqBI,eJnHG;;;;ADlEH;EK2LJ;IAEI;;;;AAIJ;EACE;EACA,eJlIK;EImIL;;;AAGF;EACE;;AN3MA;EACE;;ACEA;EKuMJ;INrMI;;;AMyMF;EACE;;AAGF;EACE;EACA,cJjJG;EIkJH,aJlJG;EImJH,OJnMU;EIoMV;;AAIA;EACE;;;ACpON;AAAA;EAEE;;APoEA;AAAA;EACE;EACA,aElEuB;;ADKvB;EMXJ;AAAA;IP4EI;;;;AA5BF;AAAA;AAAA;EACE;;ACtCA;EMJJ;AAAA;AAAA;IP8CI;IACA,aEhDuB;;;;AFgCzB;AAAA;AAAA;AAAA;EACE;;AC5BA;EMEJ;AAAA;AAAA;AAAA;IP8BI;;;;AOzBJ;AAAA;EAEE;EACA;EACA;;APdA;AAAA;EACE;;ACEA;EMOJ;AAAA;IPLI;;;;AOcJ;EACE;;;APVA;AAAA;AAAA;EACE;;ACRA;EMoBJ;AAAA;AAAA;IPRI;;;;AAfF;AAAA;EACE;;ACEA;EMyBJ;AAAA;IPvBI;;;;AALF;EACE;;ACEA;EM8BJ;IP5BI;;;;AOgCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cNoEK;EMnEL,aNmEK;EMlEL,ONiBM;EMhBN;EACA;EACA,kBN6BS;EM5BT;;ARLA;AAAA;EACE;;ACEA;EORJ;AAAA;IRUI;;;;AQKJ;EACE,kBN2BU;;;AMxBZ;EACE,kBNcW;;;AMXb;EACE,kBN2BQ;;;AMxBV;EACE,ONFY;EMGZ,kBNkBW;;;AOlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ONCc;EMAd;EACA;EACA;EACA,kBVHkB;EUIlB;EACA,ePyEc;EOxEd,YACE;EAEF;;AAEA;EACE;EACA;EACA;;AAGF;EAEE;;AAGF;EAEE;;AAGF;EAIE;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;AAKA;EAEE;EACA;EACA;EACA;EACA;;;AAKN;EACE,ON7Dc;EM8Dd;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QTgFM;ES/EN,STuEK;EStEL;;AVME;EUZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QT8DK;ES7DL;EACA,eTmEc;ESlEd,YACE;EAEF;;AVdE;EUKJ;IAYI;IACA;IACA,WTwEmB;ISvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,OThBY;ESiBZ,kBTnBM;ESoBN;EACA;EACA;EACA;EACA;;AVvCE;EU2BJ;IAeI;IACA;IACA,kBT7BI;IS8BJ;;;AAGF;EACE;;AAEA;EACE,ORrDU;;;AQ0DhB;EACE;EACA;EACA;EACA,cTKK;;ADlEH;EUyDJ;IAOI,cTIG;ISHH;;;AAGF;EACE;EACA;EACA;EACA,OTxDU;;;AS4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBTpEM;ESqEN,4BTPc;ESQd,2BTRc;ESSd,YACE;;AVvFA;EU4EJ;IAeI;IACA,OTDmB;ISEnB;;;;AAIJ;EACE;EACA,eTpCK;ESqCL;;AXnFA;EACE;;AClBA;EUiGJ;IX3EI;;;ACtBA;EDOF;IACE;;;ACRA;EUiGJ;IXrFI;;;;AWgGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBZrHa;;;AYyHjB;EACE;EACA,aT7DK;ES8DL,gBT9DK;;ADhEH;EU2HJ;IAMI;IACA;IACA,eTnEG;ISoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;AXvIF;EACE;;ACRA;EU6IF;IXjIE;;;ACZA;EDHF;IACE;;;ACEA;EU6IF;IX3IE;;;AWoJF;EACE,OTrFG;ESsFH,QTtFG;ESuFH,cTzFG;ES0FH,OR3JY;EQ4JZ;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OT5JY;ES6JZ;EACA;;AX3LA;EACE;;ACYA;EUwKJ;IXhLI;;;;AW0LJ;EACE;EACA,aTpHK;ESqHL,gBTrHK;ESsHL,cTpHK;ESqHL,aTvHK;ESwHL,OTxKY;ESyKZ;EACA,aT9GO;ES+GP,mBTrKY;;AFzBZ;EACE;;ACEA;EUkLJ;IXhLI;;;ACFA;EUkLJ;IAaI;IACA;IACA,cTjIG;ISkIH;IACA;;;;AAIJ;EACE,YTzIK;;;AS4IP;EACE;;;AAGF;EACE;;AXzMA;EACE;;ACRA;EU+MJ;IXnMI;;;;AWwMJ;EACE;EACA,OTpJK;ESqJL,QTrJK;ESsJL;EACA,OTlJK;ESmJL,QTnJK;ESoJL,kBT5MM;ES6MN;EACA;EACA,YACE;EAEF;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,QTvLI;ESwLJ;;AVhQA;EU8PF;IAKI,OTxKiB;ISyKjB,YACE;;;AAKN;EACE,kBT5PI;;ADfJ;EU0QF;IAII;;;AV9QF;EUkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AVjSF;EUuSA;IACE;IACA;IACA;;;AAIJ;EACE,aTvOI;;ADxEJ;EU8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eV0EK;EUzEL;EACA,eVkFc;EUjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA,kBVIM;EUHN;EACA;;AZNA;AAAA;EACE;;ACRA;EWOJ;AAAA;IZKI;;;AYKF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBVkCD;;;AU3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBXyBU;EWxBV;EACA,eX+EY;;;AW1EhB;EACE,cXkBY;;;AWiCd;AAAA;AAAA;EAGE;EACA,eXMK;EWLL,kBXvCY;EWwCZ,eXgBc;EWfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OXLG;EWMH;EACA;EACA;EACA;EACA;EACA,kBXvDU;EWwDV,OX5DU;EW6DV;;AAEA;AAAA;AAAA;EACE,MXhEQ;;AWmEV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EACE;EACA,eXlEK;;AW2CL;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SXjFG;EWkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA,kBXjJU;EWkJV;;Ab1KF;AAAA;EACE;;ACEA;EYkKF;AAAA;IbhKE;;;Aa0KF;EACE;EACA,eX7GG;EW8GH,cX9GG;;AWiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SX1HK;EW2HL,eX3HK;EW4HL;EACA;EACA,eXlHc;;AWoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,YXpMY;EWyMV,OX7MU;;;AWkNd;EACE,YX/MY;;;AY/Bd;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AdPE;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AflGA;EACE;;ACYA;EeZJ;IhBII;;;;AAKF;AAAA;EACE;;ACEA;EeRJ;AAAA;IhBUI;;;;AAKF;EACE;;ACRA;EeJJ;IhBgBI;;;;AAKF;EACE;;AClBA;EeAJ;IhBsBI;;;;AAKF;EACE;;AC5BA;EeIJ;IhB4BI;;;;AAKF;EACE;;ACtCA;EeQJ;IhBkCI;IACA,aEhDuB;;;;AFqDzB;EACE;EACA,aEvDuB;;ADKvB;EeYJ;IhB0CI;;;;AAKF;EACE;EACA,aElEuB;;ADKvB;EegBJ;IhBiDI;;;;AAKF;EACE;EACA,aE7EuB;;ADKvB;EeoBJ;IhBwDI;;;;AAKF;EACE;EACA,aExFuB;;ADKvB;EewBJ;IhB+DI;;;;AgB3DJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,adxDiB;;;Ac2DnB;EACE,ad1DyB;;;Ac6D3B;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AC/EF;EACE;EACA;EACA;;AAGE;EACE;;;ACLN;EACE;EACA;;;AAQA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AjBlCA;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AAaN;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AjB7GA;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AC3JR;EACE;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;;AClCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE,OjBFc;EiBGd,kBlBaM;EkBZN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACrBF;EACE,kBnBqBM;;;AoBnBR;AAAA;EATE;EACA;EAUA;EACA;EACA;EACA;EACA;EACA;;ArBHE;EqBJJ;AAAA;IALI,epBsFY;IoBrFZ;;;AAaF;EACE;;AAGF;EACE;;AAGF;AAAA;AAAA;EACE,epB+DY;EoB9DZ;EACA;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE,YrBqEC;;AqBjEL;AAAA;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;EACE;;AtBbF;EsBCF;AAAA;IAgBI;;;AAGF;AAAA;AAAA;EACE;EACA,SrB0CC;;ADhEH;EsBoBA;AAAA;AAAA;IAKI;;;AAIJ;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;EACE;;AAEA;AAAA;EACE;;AAIJ;AAAA;EACE;;AAOF;AAAA;EACE;;AAGF;AAAA;AAAA;AAAA;EACE;;AAGF;AAAA;EACE;EACA;;AtBjEJ;EsB+DE;AAAA;IAKI;;;AAGF;AAAA;EACE;EACA;;AAGF;AAAA;EACE;;;AC3FV;EFCE;EACA;EEAA;EACA;;AvBWE;EuBdJ;IFKI,epBsFY;IoBrFZ;;;AEDF;EACE;;AAGF;AAAA;AAAA;EAGE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAEE,OtBQU;EsBPV;EACA;EACA,StBmDG;EsBlDH;;AAEA;EACE,kBtBKQ;EsBJR;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE,kBtB5CU;EsB6CV,etBgBY;EsBfZ;EACA,OtBhDI;EsBiDJ;EACA;EACA;EACA;EACA;EACA;;AAWA;EACE,kBtBzDQ;EsB0DR,OtB9DQ;;AsBiEV;EACE;;AAGF;EACE;;;ACxGN;EACE;EACA;;AAEA;EACE;EACA;EACA,cvByEG;EuBxEH;;AAGF;AAAA;EAEE;;AAEF;AAAA;EACI;EACA;EACA;;AAIJ;EAGE;EACA;;AAGF;EACE,OvBIU;;;AN3Bd;EACE;;;AAGF;EACE,aMTiB;ENUjB;EACA,aMPiB;ENQjB,OMgBY;ENfZ,kBMaM;ENZN;;;AAIF;AAAA;EAEE,OOVc;;APYd;AAAA;AAAA;EAEE,OOVqB;;;APczB;EACE;;;AAGF;AAAA;EAEE,aO3BkB;;;AP+BpB;EACE,kBMQU;;;ANLZ;EACE,kBMYQ;;;ANTV;EACE;EACA;;;AAGF;EACE;;;AAOF;EAGE;;;AAGF;EACE,WOjEc;EPkEd;;;AAIA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;;;AAMN;EACE,OMpEY;;;ANuEd;EACE;EACA;EACA;EACA","sourcesContent":["/* a11y-light theme */\r\n/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */\r\n/* @author: ericwbailey */\r\n/* Adapted to pygments/rouge by @cycomachead */\r\n\r\n:root {\r\n --pygments-a11y-bg-color: #fefefe;\r\n --pygments-a11y-light-on-dark: #FFF; /* Used for errors */\r\n --pygments-a11y-light-gray: #696969; /* comments */\r\n --pygments-a11y-dark-gray: #545454;\r\n --pygments-a11y-purple: #7928a1;\r\n --pygments-a11y-blue: #007faa;\r\n --pygments-a11y-green: #008000;\r\n --pygments-a11y-yellow: #aa5d00; /* attributes */\r\n --pygments-a11y-orange: #aa5d00;\r\n --pygments-a11y-red: #d91e18;\r\n}\r\n\r\n.highlight,\r\npre.highlight {\r\n background: var(--pygments-a11y-bg-color);\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight pre,\r\n.highlight .hll,\r\n.highlight .w {\r\n background: var(--pygments-a11y-bg-color);\r\n}\r\n\r\n.highlight .c {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .err {\r\n color: var(--pygments-a11y-light-on-dark);\r\n background-color: var(--pygments-a11y-red);\r\n}\r\n\r\n.highlight .k,\r\n.highlight .kc,\r\n.highlight .kd,\r\n.highlight .kn,\r\n.highlight .kp,\r\n.highlight .kr,\r\n.highlight .kt {\r\n color: var(--pygments-a11y-purple);\r\n}\r\n\r\n.highlight .n,\r\n.highlight .o,\r\n.highlight .p,\r\n.highlight .nf,\r\n.highlight .nn,\r\n.highlight .nx {\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight .cm,\r\n.highlight .cp,\r\n.highlight .c1,\r\n.highlight .cs {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .ge {\r\n font-style: italic;\r\n}\r\n\r\n.highlight .gs,\r\n.highlight .ow {\r\n font-weight: 700;\r\n}\r\n\r\n.highlight .l,\r\n.highlight .ld,\r\n.highlight .s,\r\n.highlight .sb,\r\n.highlight .sc,\r\n.highlight .sd,\r\n.highlight .s2,\r\n.highlight .se,\r\n.highlight .sh,\r\n.highlight .si,\r\n.highlight .sx,\r\n.highlight .s1 {\r\n color: var(--pygments-a11y-green);\r\n}\r\n\r\n.highlight .bp,\r\n.highlight .nb,\r\n.highlight .nc,\r\n.highlight .no,\r\n.highlight .nd,\r\n.highlight .ni,\r\n.highlight .ne,\r\n.highlight .nl,\r\n.highlight .nv,\r\n.highlight .py,\r\n.highlight .vc,\r\n.highlight .vg {\r\n color: var(--pygments-a11y-orange); /* #ca7601; */\r\n}\r\n\r\n.highlight .gd,\r\n.highlight .nt,\r\n.highlight .vi,\r\n.highlight .language-json .w + .s2 {\r\n color: var(--pygments-a11y-red); /* #e35549 */\r\n}\r\n\r\n.highlight .il,\r\n.highlight .m,\r\n.highlight .mf,\r\n.highlight .mh,\r\n.highlight .mi,\r\n.highlight .mo,\r\n.highlight .na {\r\n color: var(--pygments-a11y-yellow); /* #b66a00 */\r\n}\r\n\r\n.highlight .sr,\r\n.highlight .ss,\r\n.highlight .language-json .kc {\r\n color: var(--pygments-a11y-blue); /*#0083bb */\r\n}\r\n\r\n.highlight .gu {\r\n color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */\r\n}\r\n\r\n.highlight .gi {\r\n color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */\r\n}\r\n","// This config applies to all berkeley courses.\r\n// It is loaded *after* all Just-the-class customizations\r\n\r\n// UC Berkeley fonts 'Inter' (sans serif) 'Source Serif' (serif), and 'Source Code Pro' (monospace)\r\n@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap');\r\n\r\n// Override default JTD CSS for larger/more accessibile fonts.\r\nhtml {\r\n font-size: 16px;\r\n}\r\n\r\nbody {\r\n font-family: $body-font-family;\r\n font-size: inherit;\r\n line-height: $body-line-height;\r\n color: $body-text-color;\r\n background-color: $body-background-color;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n// Link Colors\r\na,\r\n.main-content .anchor-heading svg {\r\n color: $link-color;\r\n\r\n &:hover,\r\n &:focus {\r\n color: $hover-focus-link-color;\r\n }\r\n}\r\n\r\na:not([class]):hover {\r\n text-decoration-color: lighten($link-color, 20%);\r\n}\r\n\r\nh1, h2, h3, h4, h5, h6,\r\n.serif {\r\n font-family: $serif-font-family;\r\n}\r\n\r\n// Override JTD to be darker\r\n.label-green:not(g) {\r\n background-color: $green-300;\r\n}\r\n\r\n.label-red:not(g) {\r\n background-color: $red-300;\r\n}\r\n\r\ncode {\r\n padding: 0.2em 0.4em;\r\n border: none;\r\n}\r\n\r\niframe {\r\n max-width: 100%;\r\n}\r\n\r\ndetails {\r\n @extend .mb-4;\r\n}\r\n\r\nsummary {\r\n @extend .btn, .btn-outline;\r\n\r\n width: 100%;\r\n}\r\n\r\n.main-content-wrap {\r\n max-width: $content-width;\r\n margin: auto;\r\n}\r\n\r\n.main-content {\r\n dl {\r\n display: block;\r\n grid-template-columns: none;\r\n }\r\n\r\n dt {\r\n font-weight: 700;\r\n text-align: start;\r\n\r\n &::after {\r\n content: normal;\r\n }\r\n }\r\n\r\n dd {\r\n font-weight: normal;\r\n\r\n + dt {\r\n margin-top: 1em;\r\n }\r\n }\r\n}\r\n\r\n// This is intended to be used for the footer\r\n.text-lighter {\r\n color: $body-lighter-color;\r\n}\r\n\r\na[target=\"_blank\"]::after {\r\n font-family: 'Font Awesome 6 Free';\r\n font-weight: 900;\r\n content: \"\\f08e\";\r\n padding: 0 0.25rem;\r\n}\r\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","// This file is coped from Just The Docs\r\n// Individual courses should not modify it!\r\n// All deviations should be documented.\r\n// https://github.com/just-the-docs/just-the-docs/blob/main/_sass/color_schemes/light.scss\r\n\r\n/////////// Do not modify this section.\r\n$color-scheme: light !default;\r\n$body-background-color: $white !default;\r\n$body-heading-color: $grey-dk-300 !default;\r\n$body-text-color: $grey-dk-100 !default;\r\n$link-color: $purple-000 !default;\r\n$nav-child-link-color: $grey-dk-100 !default;\r\n$sidebar-color: $grey-lt-000 !default;\r\n$base-button-color: #f7f7f7 !default;\r\n$btn-primary-color: $purple-100 !default;\r\n$code-background-color: $grey-lt-000 !default;\r\n$feedback-color: darken($sidebar-color, 3%) !default;\r\n$table-background-color: $white !default;\r\n$search-background-color: $white !default;\r\n$search-result-preview-color: $grey-dk-000 !default;\r\n/////////////////// Add modifications below\r\n\r\n@import \"../snytax_highliters/a11y-light\";\r\n\r\n// Minimum lightness on white.\r\n$body-lighter-color: $grey-dk-100;\r\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// Common Berkeley Variables.\r\n// This file is explicitly included before berkeley.scss in setup.scss\r\n// Some colors may be override by berkeley_light or berkeley_dark\r\n\r\n$content-width: 1200px;\r\n\r\n// Typography\r\n$mono-font-family: \"Source Code Pro\", \"SFMono-Regular\", menlo, consolas, monospace !default;\r\n$body-font-family: 'Inter', system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\r\nroboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\r\n$serif-font-family: 'Source Serif 4', 'Georiga', 'Baskerville', serif;\r\n\r\n$berkeley-blue-old: #003262;\r\n$berkeley-blue: #002676; // rgb(0, 38, 118);\r\n\r\n// Colors\r\n$link-color: $berkeley-blue;\r\n$hover-focus-link-color: lighten($link-color, 20%);\r\n\r\n// Layout\r\n$gutter-spacing: $sp-6;\r\n$gutter-spacing-sm: $sp-4;\r\n$nav-width: 256px;\r\n\r\n// Components\r\n$box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05);\r\n$module-date-color: $link-color;\r\n$staffer-image-size: 100px;\r\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"•\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n","@mixin abstract-card() {\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05);\r\n margin: $sp-4 (-$gutter-spacing-sm);\r\n\r\n @include mq(md) {\r\n border-radius: $border-radius;\r\n margin: $sp-4 0;\r\n }\r\n}\r\n\r\n%card {\r\n @include abstract-card();\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 0;\r\n padding: 0 $sp-4;\r\n position: relative;\r\n word-wrap: break-word;\r\n\r\n >:first-child {\r\n border-top: none !important;\r\n }\r\n\r\n >:last-child {\r\n border-bottom: none !important;\r\n }\r\n\r\n .label {\r\n border-radius: $border-radius;\r\n margin-left: 0;\r\n user-select: none;\r\n }\r\n}\r\n",".main-content .module,\r\n.module {\r\n @extend %card;\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6 {\r\n &:first-child {\r\n margin-top: $sp-4;\r\n }\r\n }\r\n\r\n >dl {\r\n border-bottom: $border $border-color;\r\n border-top: $border $border-color;\r\n display: grid;\r\n grid-template-columns: max-content 1fr;\r\n margin: $sp-2 (-$sp-4);\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n @include mq(lg) {\r\n grid-template-columns: 1fr 7fr;\r\n }\r\n\r\n %module-item {\r\n margin: 0;\r\n padding: $sp-2;\r\n\r\n @include mq(sm) {\r\n padding: $sp-2 $sp-4;\r\n }\r\n }\r\n\r\n >dt {\r\n @extend %module-item;\r\n border-top: $border $border-color;\r\n font-weight: normal;\r\n text-align: right;\r\n\r\n +dd {\r\n border-top: $border $border-color;\r\n }\r\n\r\n &:first-child {\r\n border-top: none;\r\n\r\n +dd {\r\n border-top: none;\r\n }\r\n }\r\n\r\n &::after {\r\n content: \":\";\r\n }\r\n }\r\n\r\n >dd {\r\n @extend %module-item;\r\n\r\n +dd {\r\n padding-top: 0;\r\n }\r\n\r\n ol, ul, dl {\r\n margin: 0;\r\n }\r\n\r\n dl {\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @include mq(sm) {\r\n flex-direction: row;\r\n }\r\n\r\n dt {\r\n flex: 0 0 62.5%;\r\n margin: 0;\r\n }\r\n\r\n dd {\r\n margin: 0;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".schedule {\r\n @include abstract-card();\r\n overflow-x: scroll;\r\n position: relative;\r\n\r\n li::before {\r\n display: none;\r\n }\r\n\r\n ul.schedule-timeline,\r\n ul.schedule-group,\r\n ul.schedule-events {\r\n margin-top: 0;\r\n padding-left: 0;\r\n }\r\n\r\n ul.schedule-timeline {\r\n margin: 40px auto 0;\r\n position: absolute;\r\n width: 100%;\r\n }\r\n\r\n .schedule-time {\r\n @extend .fs-2;\r\n color: $grey-dk-200;\r\n height: 40px;\r\n margin: 0;\r\n padding: $sp-2;\r\n position: relative;\r\n\r\n &::after {\r\n background-color: $border-color;\r\n content: '';\r\n height: 1px;\r\n left: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .schedule-group {\r\n display: flex;\r\n margin-bottom: 0;\r\n position: relative;\r\n }\r\n\r\n .schedule-day {\r\n border-left: $border $border-color;\r\n flex: 1 0 0;\r\n margin: 0;\r\n min-width: 120px;\r\n\r\n &:first-of-type {\r\n border-left: 0;\r\n }\r\n }\r\n\r\n h2.schedule-header {\r\n align-items: center;\r\n display: flex;\r\n font-size: 18px !important;\r\n height: 40px;\r\n justify-content: center;\r\n margin: 0;\r\n }\r\n\r\n .schedule-events {\r\n display: flex;\r\n padding: 0;\r\n position: relative;\r\n }\r\n\r\n .schedule-event {\r\n background-color: $grey-dk-000;\r\n border-radius: $border-radius;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, .1), inset 0 -3px 0 rgba(0, 0, 0, .2);\r\n color: $white;\r\n float: left;\r\n height: 100%;\r\n margin: 0;\r\n padding: $sp-1 $sp-2;\r\n position: absolute;\r\n width: 100%;\r\n\r\n .name {\r\n @extend .fs-3, .fw-700;\r\n }\r\n\r\n .time,\r\n .location {\r\n @extend .fs-2;\r\n }\r\n\r\n &.lecture {\r\n background-color: $grey-lt-300;\r\n color: $grey-dk-300;\r\n }\r\n\r\n &.section {\r\n background-color: darken($purple-000, 15%);\r\n }\r\n\r\n &.office-hours {\r\n background-color: darken($green-200, 10%);\r\n }\r\n }\r\n}\r\n",".staffer {\r\n display: flex;\r\n margin: $sp-4 0;\r\n\r\n .staffer-image {\r\n border-radius: 50%;\r\n height: 100px;\r\n margin-right: $sp-4;\r\n width: auto;\r\n }\r\n\r\n p,\r\n .staffer-name {\r\n margin: $sp-1 !important;\r\n\r\n .anchor-heading {\r\n width: 1.8rem;\r\n padding-left: 0.5rem;\r\n padding-right: 0.5rem;\r\n }\r\n }\r\n\r\n .staffer-badge {\r\n @extend .label, .text-grey-dk-300, .bg-grey-lt-200;\r\n\r\n -webkit-user-select: none;\r\n user-select: none;\r\n }\r\n\r\n .staffer-meta {\r\n color: $grey-dk-300;\r\n }\r\n}\r\n"],"file":"just-the-docs-default.css"} \ No newline at end of file diff --git a/_site/assets/css/just-the-docs-head-nav.css b/_site/assets/css/just-the-docs-head-nav.css new file mode 100644 index 0000000..552a3af --- /dev/null +++ b/_site/assets/css/just-the-docs-head-nav.css @@ -0,0 +1,3 @@ +.site-nav ul li a { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} diff --git a/_site/assets/css/just-the-docs-light.css b/_site/assets/css/just-the-docs-light.css new file mode 100644 index 0000000..49dfeb3 --- /dev/null +++ b/_site/assets/css/just-the-docs-light.css @@ -0,0 +1,7562 @@ +@charset "UTF-8"; +/* a11y-light theme */ +/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ +/* @author: ericwbailey */ +/* Adapted to pygments/rouge by @cycomachead */ +@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap"); +:root { + --pygments-a11y-bg-color: #fefefe; + --pygments-a11y-light-on-dark: #FFF; /* Used for errors */ + --pygments-a11y-light-gray: #696969; /* comments */ + --pygments-a11y-dark-gray: #545454; + --pygments-a11y-purple: #7928a1; + --pygments-a11y-blue: #007faa; + --pygments-a11y-green: #008000; + --pygments-a11y-yellow: #aa5d00; /* attributes */ + --pygments-a11y-orange: #aa5d00; + --pygments-a11y-red: #d91e18; +} + +.highlight, +pre.highlight { + background: var(--pygments-a11y-bg-color); + color: var(--pygments-a11y-dark-gray); +} + +.highlight pre, +.highlight .hll, +.highlight .w { + background: var(--pygments-a11y-bg-color); +} + +.highlight .c { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .err { + color: var(--pygments-a11y-light-on-dark); + background-color: var(--pygments-a11y-red); +} + +.highlight .k, +.highlight .kc, +.highlight .kd, +.highlight .kn, +.highlight .kp, +.highlight .kr, +.highlight .kt { + color: var(--pygments-a11y-purple); +} + +.highlight .n, +.highlight .o, +.highlight .p, +.highlight .nf, +.highlight .nn, +.highlight .nx { + color: var(--pygments-a11y-dark-gray); +} + +.highlight .cm, +.highlight .cp, +.highlight .c1, +.highlight .cs { + color: var(--pygments-a11y-light-gray); + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs, +.highlight .ow { + font-weight: 700; +} + +.highlight .l, +.highlight .ld, +.highlight .s, +.highlight .sb, +.highlight .sc, +.highlight .sd, +.highlight .s2, +.highlight .se, +.highlight .sh, +.highlight .si, +.highlight .sx, +.highlight .s1 { + color: var(--pygments-a11y-green); +} + +.highlight .bp, +.highlight .nb, +.highlight .nc, +.highlight .no, +.highlight .nd, +.highlight .ni, +.highlight .ne, +.highlight .nl, +.highlight .nv, +.highlight .py, +.highlight .vc, +.highlight .vg { + color: var(--pygments-a11y-orange); /* #ca7601; */ +} + +.highlight .gd, +.highlight .nt, +.highlight .vi, +.highlight .language-json .w + .s2 { + color: var(--pygments-a11y-red); /* #e35549 */ +} + +.highlight .il, +.highlight .m, +.highlight .mf, +.highlight .mh, +.highlight .mi, +.highlight .mo, +.highlight .na { + color: var(--pygments-a11y-yellow); /* #b66a00 */ +} + +.highlight .sr, +.highlight .ss, +.highlight .language-json .kc { + color: var(--pygments-a11y-blue); /*#0083bb */ +} + +.highlight .gu { + color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */ +} + +.highlight .gi { + color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */ +} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document + ========================================================================== */ +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; /* 1 */ + text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ +/** + * Remove the gray background on active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove the border on images inside links in IE 10. + */ +img { + border-style: none; +} + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type=button], +[type=reset], +[type=submit] { + appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type=search] { + appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type=search]::-webkit-search-decoration { + appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +:root { + color-scheme: light; +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} +html { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + html { + font-size: 1rem !important; + } +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #5c5962; + background-color: #fff; + overflow-wrap: break-word; +} + +ol, +ul, +dl, +pre, +address, +blockquote, +table, +div, +hr, +form, +fieldset, +noscript .table-wrapper { + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +#toctitle { + margin-top: 0; + margin-bottom: 1em; + font-weight: 500; + line-height: 1.25; + color: #27262b; +} + +p { + margin-top: 1em; + margin-bottom: 1em; +} + +a { + color: #002676; + text-decoration: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(0, 38, 118, 0.45); +} + +code { + font-family: "SFMono-Regular", menlo, consolas, monospace; + font-size: 0.75em; + line-height: 1.4; +} + +figure, +pre { + margin: 0; +} + +li { + margin: 0.25em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + height: 1px; + padding: 0; + margin: 2rem 0; + background-color: #eeebee; + border: 0; +} + +blockquote { + margin: 10px 0; + margin-block-start: 0; + margin-inline-start: 0; + padding-left: 1rem; + border-left: 3px solid #eeebee; +} + +.side-bar { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar { + flex-flow: column nowrap; + position: fixed; + width: 15.5rem; + height: 100%; + border-right: 1px solid #eeebee; + align-items: flex-end; + } +} +@media (min-width: 66.5rem) { + .side-bar { + width: calc((100% - 1456px) / 2 + 256px); + min-width: 256px; + } +} +@media (min-width: 50rem) { + .side-bar + .main { + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .side-bar + .main { + margin-left: max(256px, (100% - 1456px) / 2 + 256px); + } +} +.side-bar + .main .main-header { + display: none; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header { + display: flex; + background-color: #fff; + } +} +.side-bar + .main .main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header.nav-open { + display: flex; + } +} + +.main { + margin: auto; +} +@media (min-width: 50rem) { + .main { + position: relative; + max-width: 1200px; + } +} + +.main-content-wrap { + padding-top: 1rem; + padding-bottom: 1rem; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-top: 2rem; + padding-bottom: 2rem; + } +} + +.main-header { + z-index: 0; + border-bottom: 1px solid #eeebee; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + } +} + +.site-nav, +.site-header, +.site-footer { + width: 100%; +} +@media (min-width: 66.5rem) { + .site-nav, + .site-header, + .site-footer { + width: 256px; + } +} + +.site-nav { + display: none; +} +.site-nav.nav-open { + display: block; +} +@media (min-width: 50rem) { + .site-nav { + display: block; + padding-top: 3rem; + padding-bottom: 1rem; + overflow-y: auto; + flex: 1 1 auto; + } +} + +.site-header { + display: flex; + min-height: 3.75rem; + align-items: center; +} +@media (min-width: 50rem) { + .site-header { + height: 3.75rem; + max-height: 3.75rem; + border-bottom: 1px solid #eeebee; + } +} + +.site-title { + flex-grow: 1; + display: flex; + height: 100%; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #27262b; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .site-title { + padding-right: 2rem; + padding-left: 2rem; + } +} +.site-title { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .site-title { + font-size: 1.5rem !important; + line-height: 1.25; + } +} +@media (min-width: 50rem) { + .site-title { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } +} + +.site-button { + display: flex; + height: 100%; + padding: 1rem; + align-items: center; +} + +@media (min-width: 50rem) { + .site-header .site-button { + display: none; + } +} +.site-title:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} + +body { + position: relative; + padding-bottom: 4rem; + overflow-y: scroll; +} +@media (min-width: 50rem) { + body { + position: static; + padding-bottom: 0; + } +} + +.site-footer { + position: absolute; + bottom: 0; + left: 0; + padding-top: 1rem; + padding-bottom: 1rem; + color: #959396; + padding-right: 1rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .site-footer { + padding-right: 2rem; + padding-left: 2rem; + } +} +.site-footer { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .site-footer { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .site-footer { + position: static; + justify-self: end; + } +} + +.icon { + width: 1.5rem; + height: 1.5rem; + color: #002676; +} + +.main-content { + line-height: 1.6; +} +.main-content ol, +.main-content ul, +.main-content dl, +.main-content pre, +.main-content address, +.main-content blockquote, +.main-content .table-wrapper { + margin-top: 0.5em; +} +.main-content a { + overflow: hidden; + text-overflow: ellipsis; +} +.main-content ul, +.main-content ol { + padding-left: 1.5em; +} +.main-content li .highlight { + margin-top: 0.25rem; +} +.main-content ol { + list-style-type: none; + counter-reset: step-counter; +} +.main-content ol > li { + position: relative; +} +.main-content ol > li::before { + position: absolute; + top: 0.2em; + left: -1.6em; + color: #959396; + content: counter(step-counter); + counter-increment: step-counter; +} +.main-content ol > li::before { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + font-size: 0.875rem !important; + } +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + top: 0.11em; + } +} +.main-content ol > li ol { + counter-reset: sub-counter; +} +.main-content ol > li ol > li::before { + content: counter(sub-counter, lower-alpha); + counter-increment: sub-counter; +} +.main-content ul { + list-style: none; +} +.main-content ul > li::before { + position: absolute; + margin-left: -1.4em; + color: #959396; + content: "•"; +} +.main-content .task-list-item::before { + content: ""; +} +.main-content .task-list-item-checkbox { + margin-right: 0.6em; + margin-left: -1.4em; +} +.main-content hr + * { + margin-top: 0; +} +.main-content h1:first-of-type { + margin-top: 0.5em; +} +.main-content dl { + display: grid; + grid-template: auto/10em 1fr; +} +.main-content dt, +.main-content dd { + margin: 0.25em 0; +} +.main-content dt { + grid-column: 1; + font-weight: 500; + text-align: right; +} +.main-content dt::after { + content: ":"; +} +.main-content dd { + grid-column: 2; + margin-bottom: 0; + margin-left: 1em; +} +.main-content dd blockquote:first-child, +.main-content dd div:first-child, +.main-content dd dl:first-child, +.main-content dd dt:first-child, +.main-content dd h1:first-child, +.main-content dd h2:first-child, +.main-content dd h3:first-child, +.main-content dd h4:first-child, +.main-content dd h5:first-child, +.main-content dd h6:first-child, +.main-content dd li:first-child, +.main-content dd ol:first-child, +.main-content dd p:first-child, +.main-content dd pre:first-child, +.main-content dd table:first-child, +.main-content dd ul:first-child, +.main-content dd .table-wrapper:first-child { + margin-top: 0; +} +.main-content dd dl:first-child dt:first-child, +.main-content dd dl:first-child dd:nth-child(2), +.main-content ol dl:first-child dt:first-child, +.main-content ol dl:first-child dd:nth-child(2), +.main-content ul dl:first-child dt:first-child, +.main-content ul dl:first-child dd:nth-child(2) { + margin-top: 0; +} +.main-content .anchor-heading { + position: absolute; + right: -1rem; + width: 1.5rem; + height: 100%; + padding-right: 0.25rem; + padding-left: 0.25rem; + overflow: visible; +} +@media (min-width: 50rem) { + .main-content .anchor-heading { + right: auto; + left: -1.5rem; + } +} +.main-content .anchor-heading svg { + display: inline-block; + width: 100%; + height: 100%; + color: #002676; + visibility: hidden; +} +.main-content .anchor-heading:hover svg, +.main-content .anchor-heading:focus svg, +.main-content h1:hover > .anchor-heading svg, +.main-content h2:hover > .anchor-heading svg, +.main-content h3:hover > .anchor-heading svg, +.main-content h4:hover > .anchor-heading svg, +.main-content h5:hover > .anchor-heading svg, +.main-content h6:hover > .anchor-heading svg { + visibility: visible; +} +.main-content summary { + cursor: pointer; +} +.main-content h1, +.main-content h2, +.main-content h3, +.main-content h4, +.main-content h5, +.main-content h6, +.main-content #toctitle { + position: relative; + margin-top: 1.5em; + margin-bottom: 0.25em; +} +.main-content h1 + table, +.main-content h1 + .table-wrapper, +.main-content h1 + .code-example, +.main-content h1 + .highlighter-rouge, +.main-content h1 + .sectionbody .listingblock, +.main-content h2 + table, +.main-content h2 + .table-wrapper, +.main-content h2 + .code-example, +.main-content h2 + .highlighter-rouge, +.main-content h2 + .sectionbody .listingblock, +.main-content h3 + table, +.main-content h3 + .table-wrapper, +.main-content h3 + .code-example, +.main-content h3 + .highlighter-rouge, +.main-content h3 + .sectionbody .listingblock, +.main-content h4 + table, +.main-content h4 + .table-wrapper, +.main-content h4 + .code-example, +.main-content h4 + .highlighter-rouge, +.main-content h4 + .sectionbody .listingblock, +.main-content h5 + table, +.main-content h5 + .table-wrapper, +.main-content h5 + .code-example, +.main-content h5 + .highlighter-rouge, +.main-content h5 + .sectionbody .listingblock, +.main-content h6 + table, +.main-content h6 + .table-wrapper, +.main-content h6 + .code-example, +.main-content h6 + .highlighter-rouge, +.main-content h6 + .sectionbody .listingblock, +.main-content #toctitle + table, +.main-content #toctitle + .table-wrapper, +.main-content #toctitle + .code-example, +.main-content #toctitle + .highlighter-rouge, +.main-content #toctitle + .sectionbody .listingblock { + margin-top: 1em; +} +.main-content h1 + p:not(.label), +.main-content h2 + p:not(.label), +.main-content h3 + p:not(.label), +.main-content h4 + p:not(.label), +.main-content h5 + p:not(.label), +.main-content h6 + p:not(.label), +.main-content #toctitle + p:not(.label) { + margin-top: 0; +} +.main-content > h1:first-child, +.main-content > h2:first-child, +.main-content > h3:first-child, +.main-content > h4:first-child, +.main-content > h5:first-child, +.main-content > h6:first-child, +.main-content > .sect1:first-child > h2, +.main-content > .sect2:first-child > h3, +.main-content > .sect3:first-child > h4, +.main-content > .sect4:first-child > h5, +.main-content > .sect5:first-child > h6 { + margin-top: 0.5rem; +} + +.nav-list { + padding: 0; + margin-top: 0; + margin-bottom: 0; + list-style: none; +} +.nav-list .nav-list-item { + position: relative; + margin: 0; +} +.nav-list .nav-list-item { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .nav-list .nav-list-item { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 0.875rem !important; + } +} +.nav-list .nav-list-item .nav-list-link { + display: block; + min-height: 3rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + line-height: 2.5rem; + padding-right: 3rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-link { + min-height: 2rem; + line-height: 1.5rem; + padding-right: 2rem; + padding-left: 2rem; + } +} +.nav-list .nav-list-item .nav-list-link.external > svg { + width: 1rem; + height: 1rem; + vertical-align: text-bottom; +} +.nav-list .nav-list-item .nav-list-link.active { + font-weight: 600; + text-decoration: none; +} +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #002676; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-expander { + width: 2rem; + height: 2rem; + padding: 0.5rem; + } +} +.nav-list .nav-list-item .nav-list-expander:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} +.nav-list .nav-list-item .nav-list-expander svg { + transform: rotate(90deg); +} +.nav-list .nav-list-item > .nav-list { + display: none; + padding-left: 0.75rem; + list-style: none; +} +.nav-list .nav-list-item > .nav-list .nav-list-item { + position: relative; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { + color: #5c5962; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: #5c5962; +} +.nav-list .nav-list-item.active > .nav-list-expander svg { + transform: rotate(-90deg); +} +.nav-list .nav-list-item.active > .nav-list { + display: block; +} + +.nav-category { + padding: 0.5rem 1rem; + font-weight: 600; + text-align: start; + text-transform: uppercase; + border-bottom: 1px solid #eeebee; +} +.nav-category { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .nav-category { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .nav-category { + padding: 0.5rem 2rem; + margin-top: 1rem; + text-align: start; + } + .nav-category:first-child { + margin-top: 0; + } +} + +.nav-list.nav-category-list > .nav-list-item { + margin: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list { + padding: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { + color: #002676; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #002676; +} + +.aux-nav { + height: 100%; + overflow-x: auto; +} +.aux-nav { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .aux-nav { + font-size: 0.75rem !important; + } +} +.aux-nav .aux-nav-list { + display: flex; + height: 100%; + padding: 0; + margin: 0; + list-style: none; +} +.aux-nav .aux-nav-list-item { + display: inline-block; + height: 100%; + padding: 0; + margin: 0; +} +@media (min-width: 50rem) { + .aux-nav { + padding-right: 1rem; + } +} + +@media (min-width: 50rem) { + .breadcrumb-nav { + margin-top: -1rem; + } +} + +.breadcrumb-nav-list { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} + +.breadcrumb-nav-list-item { + display: table-cell; +} +.breadcrumb-nav-list-item { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumb-nav-list-item { + font-size: 0.75rem !important; + } +} +.breadcrumb-nav-list-item::before { + display: none; +} +.breadcrumb-nav-list-item::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumb-nav-list-item:last-child::after { + content: ""; +} + +h1, +.text-alpha { + font-weight: 300; +} +h1, +.text-alpha { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + h1, + .text-alpha { + font-size: 2.25rem !important; + } +} + +h2, +.text-beta, +#toctitle { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + h2, + .text-beta, + #toctitle { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +h3, +.text-gamma, +.announcement h1, +.announcement h2 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + h3, + .text-gamma, + .announcement h1, + .announcement h2 { + font-size: 1.125rem !important; + } +} + +h4, +.text-delta { + font-weight: 400; + text-transform: uppercase; + letter-spacing: 0.1em; +} +h4, +.text-delta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h4, + .text-delta { + font-size: 0.75rem !important; + } +} + +h4 code { + text-transform: none; +} + +h5, +.text-epsilon, +.announcement .announcement-meta { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + h5, + .text-epsilon, + .announcement .announcement-meta { + font-size: 0.875rem !important; + } +} + +h6, +.text-zeta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h6, + .text-zeta { + font-size: 0.75rem !important; + } +} + +.text-small { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .text-small { + font-size: 0.75rem !important; + } +} + +.text-mono { + font-family: "SFMono-Regular", menlo, consolas, monospace !important; +} + +.text-left { + text-align: left !important; +} + +.text-center { + text-align: center !important; +} + +.text-right { + text-align: right !important; +} + +.label:not(g), .staffer .staffer-badge:not(g), +.label-blue:not(g) { + display: inline-block; + padding: 0.16em 0.56em; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #fff; + text-transform: uppercase; + vertical-align: middle; + background-color: #2869e6; + border-radius: 12px; +} +.label:not(g), .staffer .staffer-badge:not(g), +.label-blue:not(g) { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .label:not(g), .staffer .staffer-badge:not(g), + .label-blue:not(g) { + font-size: 0.75rem !important; + } +} + +.label-green:not(g) { + background-color: #009c7b; +} + +.label-purple:not(g) { + background-color: #5e41d0; +} + +.label-red:not(g) { + background-color: #e94c4c; +} + +.label-yellow:not(g) { + color: #44434d; + background-color: #f7d12e; +} + +.btn, summary { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #002676; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #f7f7f7; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; +} +.btn:focus, summary:focus { + text-decoration: none; + outline: none; + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:focus:hover, summary:focus:hover, .btn.selected:focus, summary.selected:focus { + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:hover, summary:hover, .btn.zeroclipboard-is-hover, summary.zeroclipboard-is-hover { + color: #00236c; +} +.btn:hover, summary:hover, .btn:active, summary:active, .btn.zeroclipboard-is-hover, summary.zeroclipboard-is-hover, .btn.zeroclipboard-is-active, summary.zeroclipboard-is-active { + text-decoration: none; + background-color: #f4f4f4; +} +.btn:active, summary:active, .btn.selected, summary.selected, .btn.zeroclipboard-is-active, summary.zeroclipboard-is-active { + background-color: #efefef; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn.selected:hover, summary.selected:hover { + background-color: #cfcfcf; +} +.btn:disabled, summary:disabled, .btn:disabled:hover, .btn.disabled, summary.disabled, .btn.disabled:hover { + color: rgba(102, 102, 102, 0.5); + cursor: default; + background-color: rgba(229, 229, 229, 0.5); + background-image: none; + box-shadow: none; +} + +.btn-outline, summary { + color: #002676; + background: transparent; + box-shadow: inset 0 0 0 2px #e6e1e8; +} +.btn-outline:hover, summary:hover, .btn-outline:active, summary:active, .btn-outline.zeroclipboard-is-hover, summary.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active, summary.zeroclipboard-is-active { + color: #001f62; + text-decoration: none; + background-color: transparent; + box-shadow: inset 0 0 0 3px #e6e1e8; +} +.btn-outline:focus, summary:focus { + text-decoration: none; + outline: none; + box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn-outline:focus:hover, summary:focus:hover, .btn-outline.selected:focus, summary.selected:focus { + box-shadow: inset 0 0 0 2px #5c5962; +} + +.btn-primary { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #472cb2; +} + +.btn-purple { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-purple.selected:hover { + background-color: #472cb2; +} + +.btn-blue { + color: #fff; + background-color: #227efa; + background-image: linear-gradient(#4593fb, #227efa); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { + color: #fff; + background-color: #1878fa; + background-image: linear-gradient(#368afa, #1878fa); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #1375f9; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #0669ed; +} + +.btn-green { + color: #fff; + background-color: #10ac7d; + background-image: linear-gradient(#13cc95, #10ac7d); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-green:hover, .btn-green.zeroclipboard-is-hover { + color: #fff; + background-color: #0fa276; + background-image: linear-gradient(#12be8b, #0fa276); +} +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { + background-color: #0f9e73; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-green.selected:hover { + background-color: #0d8662; +} + +.btn-reset { + background: none; + border: none; + margin: 0; + text-align: inherit; + font: inherit; + border-radius: 0; + appearance: none; +} + +.search { + position: relative; + z-index: 2; + flex-grow: 1; + height: 4rem; + padding: 0.5rem; + transition: padding linear 200ms; +} +@media (min-width: 50rem) { + .search { + position: relative !important; + width: auto !important; + height: 100% !important; + padding: 0; + transition: none; + } +} + +.search-input-wrap { + position: relative; + z-index: 1; + height: 3rem; + overflow: hidden; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + transition: height linear 200ms; +} +@media (min-width: 50rem) { + .search-input-wrap { + position: absolute; + width: 100%; + max-width: 33.5rem; + height: 100% !important; + border-radius: 0; + box-shadow: none; + transition: width ease 400ms; + } +} + +.search-input { + position: absolute; + width: 100%; + height: 100%; + padding: 0.5rem 1rem 0.5rem 2.5rem; + font-size: 1rem; + color: #5c5962; + background-color: #fff; + border-top: 0; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-input { + padding: 0.5rem 1rem 0.5rem 3.5rem; + font-size: 0.875rem; + background-color: #fff; + transition: padding-left linear 200ms; + } +} +.search-input:focus { + outline: 0; +} +.search-input:focus + .search-label .search-icon { + color: #002676; +} + +.search-label { + position: absolute; + display: flex; + height: 100%; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .search-label { + padding-left: 2rem; + transition: padding-left linear 200ms; + } +} +.search-label .search-icon { + width: 1.2rem; + height: 1.2rem; + align-self: center; + color: #959396; +} + +.search-results { + position: absolute; + left: 0; + display: none; + width: 100%; + max-height: calc(100% - 4rem); + overflow-y: auto; + background-color: #fff; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} +@media (min-width: 50rem) { + .search-results { + top: 100%; + width: 33.5rem; + max-height: calc(100vh - 200%) !important; + } +} + +.search-results-list { + padding-left: 0; + margin-bottom: 0.25rem; + list-style: none; +} +.search-results-list { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .search-results-list { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .search-results-list { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-results-list { + font-size: 0.875rem !important; + } +} + +.search-results-list-item { + padding: 0; + margin: 0; +} + +.search-result { + display: block; + padding: 0.25rem 0.75rem; +} +.search-result:hover, .search-result.active { + background-color: #ebedf5; +} + +.search-result-title { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +@media (min-width: 31.25rem) { + .search-result-title { + display: inline-block; + width: 40%; + padding-right: 0.5rem; + vertical-align: top; + } +} + +.search-result-doc { + display: flex; + align-items: center; + word-wrap: break-word; +} +.search-result-doc.search-result-doc-parent { + opacity: 0.5; +} +.search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.6875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; + } +} +.search-result-doc .search-result-icon { + width: 1rem; + height: 1rem; + margin-right: 0.5rem; + color: #002676; + flex-shrink: 0; +} +.search-result-doc .search-result-doc-title { + overflow: auto; +} + +.search-result-section { + margin-left: 1.5rem; + word-wrap: break-word; +} + +.search-result-rel-url { + display: block; + margin-left: 1.5rem; + overflow: hidden; + color: #959396; + text-overflow: ellipsis; + white-space: nowrap; +} +.search-result-rel-url { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .search-result-rel-url { + font-size: 0.625rem !important; + } +} + +.search-result-previews { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + margin-left: 0.5rem; + color: #959396; + word-wrap: break-word; + border-left: 1px solid; + border-left-color: #eeebee; +} +.search-result-previews { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .search-result-previews { + font-size: 0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .search-result-previews { + display: inline-block; + width: 60%; + padding-left: 0.5rem; + margin-left: 0; + vertical-align: top; + } +} + +.search-result-preview + .search-result-preview { + margin-top: 0.25rem; +} + +.search-result-highlight { + font-weight: bold; +} + +.search-no-result { + padding: 0.5rem 0.75rem; +} +.search-no-result { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-no-result { + font-size: 0.875rem !important; + } +} + +.search-button { + position: fixed; + right: 1rem; + bottom: 1rem; + display: flex; + width: 3.5rem; + height: 3.5rem; + background-color: #fff; + border: 1px solid rgba(0, 38, 118, 0.3); + border-radius: 1.75rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + align-items: center; + justify-content: center; +} + +.search-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1; + width: 0; + height: 0; + background-color: rgba(0, 0, 0, 0.3); + opacity: 0; + transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; +} + +.search-active .search { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; +} +.search-active .search-input-wrap { + height: 4rem; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-active .search-input-wrap { + width: 33.5rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + } +} +.search-active .search-input { + background-color: #fff; +} +@media (min-width: 50rem) { + .search-active .search-input { + padding-left: 2.3rem; + } +} +@media (min-width: 50rem) { + .search-active .search-label { + padding-left: 0.6rem; + } +} +.search-active .search-results { + display: block; +} +.search-active .search-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: opacity ease 400ms, width 0s, height 0s; +} +@media (min-width: 50rem) { + .search-active .main { + position: fixed; + right: 0; + left: 0; + } +} +.search-active .main-header { + padding-top: 4rem; +} +@media (min-width: 50rem) { + .search-active .main-header { + padding-top: 0; + } +} + +.table-wrapper { + display: block; + width: 100%; + max-width: 100%; + margin-bottom: 1.5rem; + overflow-x: auto; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} + +table { + display: table; + min-width: 100%; + border-collapse: separate; +} + +th, +td { + min-width: 7.5rem; + padding: 0.5rem 0.75rem; + background-color: #fff; + border-bottom: 1px solid rgba(238, 235, 238, 0.5); + border-left: 1px solid #eeebee; +} +th, +td { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + th, + td { + font-size: 0.875rem !important; + } +} +th:first-of-type, +td:first-of-type { + border-left: 0; +} + +tbody tr:last-of-type th, +tbody tr:last-of-type td { + border-bottom: 0; +} +tbody tr:last-of-type td { + padding-bottom: 0.75rem; +} + +thead th { + border-bottom: 1px solid #eeebee; +} + +:not(pre, figure) > code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: #f5f6fa; + border: 1px solid #eeebee; + border-radius: 4px; +} + +a:visited code { + border-color: #eeebee; +} + +div.highlighter-rouge, +div.listingblock > div.content, +figure.highlight { + margin-top: 0; + margin-bottom: 0.75rem; + background-color: #f5f6fa; + border-radius: 4px; + box-shadow: none; + -webkit-overflow-scrolling: touch; + position: relative; + padding: 0; +} +div.highlighter-rouge > button, +div.listingblock > div.content > button, +figure.highlight > button { + width: 0.75rem; + opacity: 0; + position: absolute; + top: 0; + right: 0; + border: 0.75rem solid #f5f6fa; + background-color: #f5f6fa; + color: #5c5962; + box-sizing: content-box; +} +div.highlighter-rouge > button svg, +div.listingblock > div.content > button svg, +figure.highlight > button svg { + fill: #5c5962; +} +div.highlighter-rouge > button:active, +div.listingblock > div.content > button:active, +figure.highlight > button:active { + text-decoration: none; + outline: none; + opacity: 1; +} +div.highlighter-rouge > button:focus, +div.listingblock > div.content > button:focus, +figure.highlight > button:focus { + opacity: 1; +} +div.highlighter-rouge:hover > button, +div.listingblock > div.content:hover > button, +figure.highlight:hover > button { + cursor: copy; + opacity: 1; +} + +div.highlighter-rouge div.highlight { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.highlighter-rouge pre.highlight, +div.highlighter-rouge code { + padding: 0; + margin: 0; + border: 0; +} + +div.listingblock { + margin-top: 0; + margin-bottom: 0.75rem; +} +div.listingblock div.content { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.listingblock div.content > pre, +div.listingblock code { + padding: 0; + margin: 0; + border: 0; +} + +figure.highlight pre, +figure.highlight :not(pre) > code { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} + +.highlight .table-wrapper { + padding: 0.75rem 0; + margin: 0; + border: 0; + box-shadow: none; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + min-width: 0; + padding: 0; + background-color: #f5f6fa; + border: 0; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .highlight .table-wrapper td, + .highlight .table-wrapper pre { + font-size: 0.75rem !important; + } +} +.highlight .table-wrapper td.gl { + width: 1em; + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.highlight .table-wrapper pre { + margin: 0; + line-height: 2; +} + +.code-example, +.listingblock > .title { + padding: 0.75rem; + margin-bottom: 0.75rem; + overflow: auto; + border: 1px solid #eeebee; + border-radius: 4px; +} +.code-example + .highlighter-rouge, +.code-example + .sectionbody .listingblock, +.code-example + .content, +.code-example + figure.highlight, +.listingblock > .title + .highlighter-rouge, +.listingblock > .title + .sectionbody .listingblock, +.listingblock > .title + .content, +.listingblock > .title + figure.highlight { + position: relative; + margin-top: -1rem; + border-right: 1px solid #eeebee; + border-bottom: 1px solid #eeebee; + border-left: 1px solid #eeebee; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +code.language-mermaid { + padding: 0; + background-color: inherit; + border: 0; +} + +.highlight, +pre.highlight { + background: #f5f6fa; + color: #5c5962; +} + +.highlight pre { + background: #f5f6fa; +} + +.text-grey-dk-000 { + color: #959396 !important; +} + +.text-grey-dk-100 { + color: #5c5962 !important; +} + +.text-grey-dk-200 { + color: #44434d !important; +} + +.text-grey-dk-250 { + color: #302d36 !important; +} + +.text-grey-dk-300, .staffer .staffer-badge { + color: #27262b !important; +} + +.text-grey-lt-000 { + color: #f5f6fa !important; +} + +.text-grey-lt-100 { + color: #eeebee !important; +} + +.text-grey-lt-200 { + color: #ecebed !important; +} + +.text-grey-lt-300 { + color: #e6e1e8 !important; +} + +.text-blue-000 { + color: #2c84fa !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #264caf !important; +} + +.text-blue-300 { + color: #183385 !important; +} + +.text-green-000 { + color: #41d693 !important; +} + +.text-green-100 { + color: #11b584 !important; +} + +.text-green-200 { + color: #009c7b !important; +} + +.text-green-300 { + color: #026e57 !important; +} + +.text-purple-000 { + color: #7253ed !important; +} + +.text-purple-100 { + color: #5e41d0 !important; +} + +.text-purple-200 { + color: #4e26af !important; +} + +.text-purple-300 { + color: #381885 !important; +} + +.text-yellow-000 { + color: #ffeb82 !important; +} + +.text-yellow-100 { + color: #fadf50 !important; +} + +.text-yellow-200 { + color: #f7d12e !important; +} + +.text-yellow-300 { + color: #e7af06 !important; +} + +.text-red-000 { + color: #f77e7e !important; +} + +.text-red-100 { + color: #f96e65 !important; +} + +.text-red-200 { + color: #e94c4c !important; +} + +.text-red-300 { + color: #dd2e2e !important; +} + +.bg-grey-dk-000 { + background-color: #959396 !important; +} + +.bg-grey-dk-100 { + background-color: #5c5962 !important; +} + +.bg-grey-dk-200 { + background-color: #44434d !important; +} + +.bg-grey-dk-250 { + background-color: #302d36 !important; +} + +.bg-grey-dk-300 { + background-color: #27262b !important; +} + +.bg-grey-lt-000 { + background-color: #f5f6fa !important; +} + +.bg-grey-lt-100 { + background-color: #eeebee !important; +} + +.bg-grey-lt-200, .staffer .staffer-badge { + background-color: #ecebed !important; +} + +.bg-grey-lt-300 { + background-color: #e6e1e8 !important; +} + +.bg-blue-000 { + background-color: #2c84fa !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #264caf !important; +} + +.bg-blue-300 { + background-color: #183385 !important; +} + +.bg-green-000 { + background-color: #41d693 !important; +} + +.bg-green-100 { + background-color: #11b584 !important; +} + +.bg-green-200 { + background-color: #009c7b !important; +} + +.bg-green-300 { + background-color: #026e57 !important; +} + +.bg-purple-000 { + background-color: #7253ed !important; +} + +.bg-purple-100 { + background-color: #5e41d0 !important; +} + +.bg-purple-200 { + background-color: #4e26af !important; +} + +.bg-purple-300 { + background-color: #381885 !important; +} + +.bg-yellow-000 { + background-color: #ffeb82 !important; +} + +.bg-yellow-100 { + background-color: #fadf50 !important; +} + +.bg-yellow-200 { + background-color: #f7d12e !important; +} + +.bg-yellow-300 { + background-color: #e7af06 !important; +} + +.bg-red-000 { + background-color: #f77e7e !important; +} + +.bg-red-100 { + background-color: #f96e65 !important; +} + +.bg-red-200 { + background-color: #e94c4c !important; +} + +.bg-red-300 { + background-color: #dd2e2e !important; +} + +.d-block { + display: block !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-none { + display: none !important; +} + +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.flex-justify-start { + justify-content: flex-start !important; +} + +.flex-justify-end { + justify-content: flex-end !important; +} + +.flex-justify-between { + justify-content: space-between !important; +} + +.flex-justify-around { + justify-content: space-around !important; +} + +.v-align-baseline { + vertical-align: baseline !important; +} + +.v-align-bottom { + vertical-align: bottom !important; +} + +.v-align-middle { + vertical-align: middle !important; +} + +.v-align-text-bottom { + vertical-align: text-bottom !important; +} + +.v-align-text-top { + vertical-align: text-top !important; +} + +.v-align-top { + vertical-align: top !important; +} + +.fs-1 { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .fs-1 { + font-size: 0.625rem !important; + } +} + +.fs-2, .schedule .schedule-event .time, +.schedule .schedule-event .location, .schedule .schedule-time { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .fs-2, .schedule .schedule-event .time, + .schedule .schedule-event .location, .schedule .schedule-time { + font-size: 0.75rem !important; + } +} + +.fs-3, .schedule .schedule-event .name { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .fs-3, .schedule .schedule-event .name { + font-size: 0.875rem !important; + } +} + +.fs-4 { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .fs-4 { + font-size: 1rem !important; + } +} + +.fs-5 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + .fs-5 { + font-size: 1.125rem !important; + } +} + +.fs-6 { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .fs-6 { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +.fs-7 { + font-size: 1.5rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-7 { + font-size: 2rem !important; + } +} + +.fs-8 { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-8 { + font-size: 2.25rem !important; + } +} + +.fs-9 { + font-size: 2.25rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-9 { + font-size: 2.625rem !important; + } +} + +.fs-10 { + font-size: 2.625rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-10 { + font-size: 3rem !important; + } +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-700, .schedule .schedule-event .name { + font-weight: 700 !important; +} + +.lh-0 { + line-height: 0 !important; +} + +.lh-default { + line-height: 1.4; +} + +.lh-tight { + line-height: 1.25; +} + +.ls-5 { + letter-spacing: 0.05em !important; +} + +.ls-10 { + letter-spacing: 0.1em !important; +} + +.ls-0 { + letter-spacing: 0 !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.list-style-none { + padding: 0 !important; + margin: 0 !important; + list-style: none !important; +} +.list-style-none li::before { + display: none !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.mxn-0 { + margin-right: -0 !important; + margin-left: -0 !important; +} + +.mx-0-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.mxn-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; +} + +.mx-1-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.mxn-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; +} + +.mx-2-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.mxn-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; +} + +.mx-3-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4, details { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.mxn-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; +} + +.mx-4-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.mxn-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; +} + +.mx-5-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-6 { + margin: 2rem !important; +} + +.mt-6 { + margin-top: 2rem !important; +} + +.mr-6 { + margin-right: 2rem !important; +} + +.mb-6 { + margin-bottom: 2rem !important; +} + +.ml-6 { + margin-left: 2rem !important; +} + +.mx-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; +} + +.my-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; +} + +.mxn-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; +} + +.mx-6-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-7 { + margin: 2.5rem !important; +} + +.mt-7 { + margin-top: 2.5rem !important; +} + +.mr-7 { + margin-right: 2.5rem !important; +} + +.mb-7 { + margin-bottom: 2.5rem !important; +} + +.ml-7 { + margin-left: 2.5rem !important; +} + +.mx-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; +} + +.my-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; +} + +.mxn-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; +} + +.mx-7-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-8 { + margin: 3rem !important; +} + +.mt-8 { + margin-top: 3rem !important; +} + +.mr-8 { + margin-right: 3rem !important; +} + +.mb-8 { + margin-bottom: 3rem !important; +} + +.ml-8 { + margin-left: 3rem !important; +} + +.mx-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.my-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.mxn-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; +} + +.mx-8-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-9 { + margin: 3.5rem !important; +} + +.mt-9 { + margin-top: 3.5rem !important; +} + +.mr-9 { + margin-right: 3.5rem !important; +} + +.mb-9 { + margin-bottom: 3.5rem !important; +} + +.ml-9 { + margin-left: 3.5rem !important; +} + +.mx-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; +} + +.my-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; +} + +.mxn-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; +} + +.mx-9-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-10 { + margin: 4rem !important; +} + +.mt-10 { + margin-top: 4rem !important; +} + +.mr-10 { + margin-right: 4rem !important; +} + +.mb-10 { + margin-bottom: 4rem !important; +} + +.ml-10 { + margin-left: 4rem !important; +} + +.mx-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; +} + +.my-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; +} + +.mxn-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; +} + +.mx-10-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 20rem) { + .m-xs-0 { + margin: 0 !important; + } + .mt-xs-0 { + margin-top: 0 !important; + } + .mr-xs-0 { + margin-right: 0 !important; + } + .mb-xs-0 { + margin-bottom: 0 !important; + } + .ml-xs-0 { + margin-left: 0 !important; + } + .mx-xs-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xs-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xs-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 20rem) { + .m-xs-1 { + margin: 0.25rem !important; + } + .mt-xs-1 { + margin-top: 0.25rem !important; + } + .mr-xs-1 { + margin-right: 0.25rem !important; + } + .mb-xs-1 { + margin-bottom: 0.25rem !important; + } + .ml-xs-1 { + margin-left: 0.25rem !important; + } + .mx-xs-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xs-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xs-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-2 { + margin: 0.5rem !important; + } + .mt-xs-2 { + margin-top: 0.5rem !important; + } + .mr-xs-2 { + margin-right: 0.5rem !important; + } + .mb-xs-2 { + margin-bottom: 0.5rem !important; + } + .ml-xs-2 { + margin-left: 0.5rem !important; + } + .mx-xs-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xs-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xs-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-3 { + margin: 0.75rem !important; + } + .mt-xs-3 { + margin-top: 0.75rem !important; + } + .mr-xs-3 { + margin-right: 0.75rem !important; + } + .mb-xs-3 { + margin-bottom: 0.75rem !important; + } + .ml-xs-3 { + margin-left: 0.75rem !important; + } + .mx-xs-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xs-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xs-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-4 { + margin: 1rem !important; + } + .mt-xs-4 { + margin-top: 1rem !important; + } + .mr-xs-4 { + margin-right: 1rem !important; + } + .mb-xs-4 { + margin-bottom: 1rem !important; + } + .ml-xs-4 { + margin-left: 1rem !important; + } + .mx-xs-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xs-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xs-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-5 { + margin: 1.5rem !important; + } + .mt-xs-5 { + margin-top: 1.5rem !important; + } + .mr-xs-5 { + margin-right: 1.5rem !important; + } + .mb-xs-5 { + margin-bottom: 1.5rem !important; + } + .ml-xs-5 { + margin-left: 1.5rem !important; + } + .mx-xs-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xs-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xs-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-6 { + margin: 2rem !important; + } + .mt-xs-6 { + margin-top: 2rem !important; + } + .mr-xs-6 { + margin-right: 2rem !important; + } + .mb-xs-6 { + margin-bottom: 2rem !important; + } + .ml-xs-6 { + margin-left: 2rem !important; + } + .mx-xs-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xs-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xs-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-7 { + margin: 2.5rem !important; + } + .mt-xs-7 { + margin-top: 2.5rem !important; + } + .mr-xs-7 { + margin-right: 2.5rem !important; + } + .mb-xs-7 { + margin-bottom: 2.5rem !important; + } + .ml-xs-7 { + margin-left: 2.5rem !important; + } + .mx-xs-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xs-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xs-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-8 { + margin: 3rem !important; + } + .mt-xs-8 { + margin-top: 3rem !important; + } + .mr-xs-8 { + margin-right: 3rem !important; + } + .mb-xs-8 { + margin-bottom: 3rem !important; + } + .ml-xs-8 { + margin-left: 3rem !important; + } + .mx-xs-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xs-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xs-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-9 { + margin: 3.5rem !important; + } + .mt-xs-9 { + margin-top: 3.5rem !important; + } + .mr-xs-9 { + margin-right: 3.5rem !important; + } + .mb-xs-9 { + margin-bottom: 3.5rem !important; + } + .ml-xs-9 { + margin-left: 3.5rem !important; + } + .mx-xs-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xs-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xs-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-10 { + margin: 4rem !important; + } + .mt-xs-10 { + margin-top: 4rem !important; + } + .mr-xs-10 { + margin-right: 4rem !important; + } + .mb-xs-10 { + margin-bottom: 4rem !important; + } + .ml-xs-10 { + margin-left: 4rem !important; + } + .mx-xs-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xs-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xs-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0 { + margin-left: 0 !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-sm-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1 { + margin-left: 0.25rem !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-sm-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2 { + margin-left: 0.5rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-sm-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-3 { + margin: 0.75rem !important; + } + .mt-sm-3 { + margin-top: 0.75rem !important; + } + .mr-sm-3 { + margin-right: 0.75rem !important; + } + .mb-sm-3 { + margin-bottom: 0.75rem !important; + } + .ml-sm-3 { + margin-left: 0.75rem !important; + } + .mx-sm-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-sm-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-sm-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-4 { + margin: 1rem !important; + } + .mt-sm-4 { + margin-top: 1rem !important; + } + .mr-sm-4 { + margin-right: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1rem !important; + } + .ml-sm-4 { + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-sm-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-sm-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-5 { + margin: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 1.5rem !important; + } + .mr-sm-5 { + margin-right: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 1.5rem !important; + } + .ml-sm-5 { + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-sm-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-sm-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-6 { + margin: 2rem !important; + } + .mt-sm-6 { + margin-top: 2rem !important; + } + .mr-sm-6 { + margin-right: 2rem !important; + } + .mb-sm-6 { + margin-bottom: 2rem !important; + } + .ml-sm-6 { + margin-left: 2rem !important; + } + .mx-sm-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-sm-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-sm-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-7 { + margin: 2.5rem !important; + } + .mt-sm-7 { + margin-top: 2.5rem !important; + } + .mr-sm-7 { + margin-right: 2.5rem !important; + } + .mb-sm-7 { + margin-bottom: 2.5rem !important; + } + .ml-sm-7 { + margin-left: 2.5rem !important; + } + .mx-sm-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-sm-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-sm-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-8 { + margin: 3rem !important; + } + .mt-sm-8 { + margin-top: 3rem !important; + } + .mr-sm-8 { + margin-right: 3rem !important; + } + .mb-sm-8 { + margin-bottom: 3rem !important; + } + .ml-sm-8 { + margin-left: 3rem !important; + } + .mx-sm-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-sm-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-sm-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-9 { + margin: 3.5rem !important; + } + .mt-sm-9 { + margin-top: 3.5rem !important; + } + .mr-sm-9 { + margin-right: 3.5rem !important; + } + .mb-sm-9 { + margin-bottom: 3.5rem !important; + } + .ml-sm-9 { + margin-left: 3.5rem !important; + } + .mx-sm-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-sm-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-sm-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-10 { + margin: 4rem !important; + } + .mt-sm-10 { + margin-top: 4rem !important; + } + .mr-sm-10 { + margin-right: 4rem !important; + } + .mb-sm-10 { + margin-bottom: 4rem !important; + } + .ml-sm-10 { + margin-left: 4rem !important; + } + .mx-sm-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-sm-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-sm-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 50rem) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mr-md-0 { + margin-right: 0 !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0 { + margin-left: 0 !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-md-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 50rem) { + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1 { + margin-left: 0.25rem !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-md-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 50rem) { + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2 { + margin-left: 0.5rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-md-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-3 { + margin: 0.75rem !important; + } + .mt-md-3 { + margin-top: 0.75rem !important; + } + .mr-md-3 { + margin-right: 0.75rem !important; + } + .mb-md-3 { + margin-bottom: 0.75rem !important; + } + .ml-md-3 { + margin-left: 0.75rem !important; + } + .mx-md-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-md-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-md-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 50rem) { + .m-md-4 { + margin: 1rem !important; + } + .mt-md-4 { + margin-top: 1rem !important; + } + .mr-md-4 { + margin-right: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1rem !important; + } + .ml-md-4 { + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-md-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-md-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 50rem) { + .m-md-5 { + margin: 1.5rem !important; + } + .mt-md-5 { + margin-top: 1.5rem !important; + } + .mr-md-5 { + margin-right: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 1.5rem !important; + } + .ml-md-5 { + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-md-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-md-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-6 { + margin: 2rem !important; + } + .mt-md-6 { + margin-top: 2rem !important; + } + .mr-md-6 { + margin-right: 2rem !important; + } + .mb-md-6 { + margin-bottom: 2rem !important; + } + .ml-md-6 { + margin-left: 2rem !important; + } + .mx-md-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-md-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-md-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 50rem) { + .m-md-7 { + margin: 2.5rem !important; + } + .mt-md-7 { + margin-top: 2.5rem !important; + } + .mr-md-7 { + margin-right: 2.5rem !important; + } + .mb-md-7 { + margin-bottom: 2.5rem !important; + } + .ml-md-7 { + margin-left: 2.5rem !important; + } + .mx-md-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-md-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-md-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-8 { + margin: 3rem !important; + } + .mt-md-8 { + margin-top: 3rem !important; + } + .mr-md-8 { + margin-right: 3rem !important; + } + .mb-md-8 { + margin-bottom: 3rem !important; + } + .ml-md-8 { + margin-left: 3rem !important; + } + .mx-md-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-md-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-md-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 50rem) { + .m-md-9 { + margin: 3.5rem !important; + } + .mt-md-9 { + margin-top: 3.5rem !important; + } + .mr-md-9 { + margin-right: 3.5rem !important; + } + .mb-md-9 { + margin-bottom: 3.5rem !important; + } + .ml-md-9 { + margin-left: 3.5rem !important; + } + .mx-md-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-md-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-md-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-10 { + margin: 4rem !important; + } + .mt-md-10 { + margin-top: 4rem !important; + } + .mr-md-10 { + margin-right: 4rem !important; + } + .mb-md-10 { + margin-bottom: 4rem !important; + } + .ml-md-10 { + margin-left: 4rem !important; + } + .mx-md-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-md-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-md-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0 { + margin-left: 0 !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-lg-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1 { + margin-left: 0.25rem !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-lg-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2 { + margin-left: 0.5rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-lg-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-3 { + margin: 0.75rem !important; + } + .mt-lg-3 { + margin-top: 0.75rem !important; + } + .mr-lg-3 { + margin-right: 0.75rem !important; + } + .mb-lg-3 { + margin-bottom: 0.75rem !important; + } + .ml-lg-3 { + margin-left: 0.75rem !important; + } + .mx-lg-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-lg-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-lg-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-4 { + margin: 1rem !important; + } + .mt-lg-4 { + margin-top: 1rem !important; + } + .mr-lg-4 { + margin-right: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1rem !important; + } + .ml-lg-4 { + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-lg-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-lg-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-5 { + margin: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 1.5rem !important; + } + .mr-lg-5 { + margin-right: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 1.5rem !important; + } + .ml-lg-5 { + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-lg-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-lg-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-6 { + margin: 2rem !important; + } + .mt-lg-6 { + margin-top: 2rem !important; + } + .mr-lg-6 { + margin-right: 2rem !important; + } + .mb-lg-6 { + margin-bottom: 2rem !important; + } + .ml-lg-6 { + margin-left: 2rem !important; + } + .mx-lg-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-lg-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-lg-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-7 { + margin: 2.5rem !important; + } + .mt-lg-7 { + margin-top: 2.5rem !important; + } + .mr-lg-7 { + margin-right: 2.5rem !important; + } + .mb-lg-7 { + margin-bottom: 2.5rem !important; + } + .ml-lg-7 { + margin-left: 2.5rem !important; + } + .mx-lg-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-lg-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-lg-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-8 { + margin: 3rem !important; + } + .mt-lg-8 { + margin-top: 3rem !important; + } + .mr-lg-8 { + margin-right: 3rem !important; + } + .mb-lg-8 { + margin-bottom: 3rem !important; + } + .ml-lg-8 { + margin-left: 3rem !important; + } + .mx-lg-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-lg-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-lg-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-9 { + margin: 3.5rem !important; + } + .mt-lg-9 { + margin-top: 3.5rem !important; + } + .mr-lg-9 { + margin-right: 3.5rem !important; + } + .mb-lg-9 { + margin-bottom: 3.5rem !important; + } + .ml-lg-9 { + margin-left: 3.5rem !important; + } + .mx-lg-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-lg-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-lg-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-10 { + margin: 4rem !important; + } + .mt-lg-10 { + margin-top: 4rem !important; + } + .mr-lg-10 { + margin-right: 4rem !important; + } + .mb-lg-10 { + margin-bottom: 4rem !important; + } + .ml-lg-10 { + margin-left: 4rem !important; + } + .mx-lg-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-lg-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-lg-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0 { + margin-left: 0 !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xl-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1 { + margin-left: 0.25rem !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xl-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2 { + margin-left: 0.5rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xl-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-3 { + margin: 0.75rem !important; + } + .mt-xl-3 { + margin-top: 0.75rem !important; + } + .mr-xl-3 { + margin-right: 0.75rem !important; + } + .mb-xl-3 { + margin-bottom: 0.75rem !important; + } + .ml-xl-3 { + margin-left: 0.75rem !important; + } + .mx-xl-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xl-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xl-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-4 { + margin: 1rem !important; + } + .mt-xl-4 { + margin-top: 1rem !important; + } + .mr-xl-4 { + margin-right: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1rem !important; + } + .ml-xl-4 { + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xl-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xl-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-5 { + margin: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 1.5rem !important; + } + .mr-xl-5 { + margin-right: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 1.5rem !important; + } + .ml-xl-5 { + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xl-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xl-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-6 { + margin: 2rem !important; + } + .mt-xl-6 { + margin-top: 2rem !important; + } + .mr-xl-6 { + margin-right: 2rem !important; + } + .mb-xl-6 { + margin-bottom: 2rem !important; + } + .ml-xl-6 { + margin-left: 2rem !important; + } + .mx-xl-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xl-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xl-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-7 { + margin: 2.5rem !important; + } + .mt-xl-7 { + margin-top: 2.5rem !important; + } + .mr-xl-7 { + margin-right: 2.5rem !important; + } + .mb-xl-7 { + margin-bottom: 2.5rem !important; + } + .ml-xl-7 { + margin-left: 2.5rem !important; + } + .mx-xl-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xl-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xl-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-8 { + margin: 3rem !important; + } + .mt-xl-8 { + margin-top: 3rem !important; + } + .mr-xl-8 { + margin-right: 3rem !important; + } + .mb-xl-8 { + margin-bottom: 3rem !important; + } + .ml-xl-8 { + margin-left: 3rem !important; + } + .mx-xl-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xl-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xl-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-9 { + margin: 3.5rem !important; + } + .mt-xl-9 { + margin-top: 3.5rem !important; + } + .mr-xl-9 { + margin-right: 3.5rem !important; + } + .mb-xl-9 { + margin-bottom: 3.5rem !important; + } + .ml-xl-9 { + margin-left: 3.5rem !important; + } + .mx-xl-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xl-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xl-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-10 { + margin: 4rem !important; + } + .mt-xl-10 { + margin-top: 4rem !important; + } + .mr-xl-10 { + margin-right: 4rem !important; + } + .mb-xl-10 { + margin-bottom: 4rem !important; + } + .ml-xl-10 { + margin-left: 4rem !important; + } + .mx-xl-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xl-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xl-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 2rem !important; +} + +.pt-6 { + padding-top: 2rem !important; +} + +.pr-6 { + padding-right: 2rem !important; +} + +.pb-6 { + padding-bottom: 2rem !important; +} + +.pl-6 { + padding-left: 2rem !important; +} + +.px-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; +} + +.py-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; +} + +.p-7 { + padding: 2.5rem !important; +} + +.pt-7 { + padding-top: 2.5rem !important; +} + +.pr-7 { + padding-right: 2.5rem !important; +} + +.pb-7 { + padding-bottom: 2.5rem !important; +} + +.pl-7 { + padding-left: 2.5rem !important; +} + +.px-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; +} + +.py-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; +} + +.p-8 { + padding: 3rem !important; +} + +.pt-8 { + padding-top: 3rem !important; +} + +.pr-8 { + padding-right: 3rem !important; +} + +.pb-8 { + padding-bottom: 3rem !important; +} + +.pl-8 { + padding-left: 3rem !important; +} + +.px-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-9 { + padding: 3.5rem !important; +} + +.pt-9 { + padding-top: 3.5rem !important; +} + +.pr-9 { + padding-right: 3.5rem !important; +} + +.pb-9 { + padding-bottom: 3.5rem !important; +} + +.pl-9 { + padding-left: 3.5rem !important; +} + +.px-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; +} + +.py-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; +} + +.p-10 { + padding: 4rem !important; +} + +.pt-10 { + padding-top: 4rem !important; +} + +.pr-10 { + padding-right: 4rem !important; +} + +.pb-10 { + padding-bottom: 4rem !important; +} + +.pl-10 { + padding-left: 4rem !important; +} + +.px-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; +} + +.py-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; +} + +@media (min-width: 20rem) { + .p-xs-0 { + padding: 0 !important; + } + .pt-xs-0 { + padding-top: 0 !important; + } + .pr-xs-0 { + padding-right: 0 !important; + } + .pb-xs-0 { + padding-bottom: 0 !important; + } + .pl-xs-0 { + padding-left: 0 !important; + } + .px-xs-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xs-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xs-1 { + padding: 0.25rem !important; + } + .pt-xs-1 { + padding-top: 0.25rem !important; + } + .pr-xs-1 { + padding-right: 0.25rem !important; + } + .pb-xs-1 { + padding-bottom: 0.25rem !important; + } + .pl-xs-1 { + padding-left: 0.25rem !important; + } + .px-xs-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xs-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xs-2 { + padding: 0.5rem !important; + } + .pt-xs-2 { + padding-top: 0.5rem !important; + } + .pr-xs-2 { + padding-right: 0.5rem !important; + } + .pb-xs-2 { + padding-bottom: 0.5rem !important; + } + .pl-xs-2 { + padding-left: 0.5rem !important; + } + .px-xs-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xs-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xs-3 { + padding: 0.75rem !important; + } + .pt-xs-3 { + padding-top: 0.75rem !important; + } + .pr-xs-3 { + padding-right: 0.75rem !important; + } + .pb-xs-3 { + padding-bottom: 0.75rem !important; + } + .pl-xs-3 { + padding-left: 0.75rem !important; + } + .px-xs-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xs-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xs-4 { + padding: 1rem !important; + } + .pt-xs-4 { + padding-top: 1rem !important; + } + .pr-xs-4 { + padding-right: 1rem !important; + } + .pb-xs-4 { + padding-bottom: 1rem !important; + } + .pl-xs-4 { + padding-left: 1rem !important; + } + .px-xs-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xs-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xs-5 { + padding: 1.5rem !important; + } + .pt-xs-5 { + padding-top: 1.5rem !important; + } + .pr-xs-5 { + padding-right: 1.5rem !important; + } + .pb-xs-5 { + padding-bottom: 1.5rem !important; + } + .pl-xs-5 { + padding-left: 1.5rem !important; + } + .px-xs-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xs-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xs-6 { + padding: 2rem !important; + } + .pt-xs-6 { + padding-top: 2rem !important; + } + .pr-xs-6 { + padding-right: 2rem !important; + } + .pb-xs-6 { + padding-bottom: 2rem !important; + } + .pl-xs-6 { + padding-left: 2rem !important; + } + .px-xs-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xs-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xs-7 { + padding: 2.5rem !important; + } + .pt-xs-7 { + padding-top: 2.5rem !important; + } + .pr-xs-7 { + padding-right: 2.5rem !important; + } + .pb-xs-7 { + padding-bottom: 2.5rem !important; + } + .pl-xs-7 { + padding-left: 2.5rem !important; + } + .px-xs-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xs-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xs-8 { + padding: 3rem !important; + } + .pt-xs-8 { + padding-top: 3rem !important; + } + .pr-xs-8 { + padding-right: 3rem !important; + } + .pb-xs-8 { + padding-bottom: 3rem !important; + } + .pl-xs-8 { + padding-left: 3rem !important; + } + .px-xs-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xs-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xs-9 { + padding: 3.5rem !important; + } + .pt-xs-9 { + padding-top: 3.5rem !important; + } + .pr-xs-9 { + padding-right: 3.5rem !important; + } + .pb-xs-9 { + padding-bottom: 3.5rem !important; + } + .pl-xs-9 { + padding-left: 3.5rem !important; + } + .px-xs-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xs-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xs-10 { + padding: 4rem !important; + } + .pt-xs-10 { + padding-top: 4rem !important; + } + .pr-xs-10 { + padding-right: 4rem !important; + } + .pb-xs-10 { + padding-bottom: 4rem !important; + } + .pl-xs-10 { + padding-left: 4rem !important; + } + .px-xs-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xs-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 31.25rem) { + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0 { + padding-left: 0 !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1 { + padding-left: 0.25rem !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2 { + padding-left: 0.5rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-sm-3 { + padding: 0.75rem !important; + } + .pt-sm-3 { + padding-top: 0.75rem !important; + } + .pr-sm-3 { + padding-right: 0.75rem !important; + } + .pb-sm-3 { + padding-bottom: 0.75rem !important; + } + .pl-sm-3 { + padding-left: 0.75rem !important; + } + .px-sm-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-sm-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-sm-4 { + padding: 1rem !important; + } + .pt-sm-4 { + padding-top: 1rem !important; + } + .pr-sm-4 { + padding-right: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1rem !important; + } + .pl-sm-4 { + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-sm-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-sm-5 { + padding: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 1.5rem !important; + } + .pr-sm-5 { + padding-right: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 1.5rem !important; + } + .pl-sm-5 { + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-sm-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-sm-6 { + padding: 2rem !important; + } + .pt-sm-6 { + padding-top: 2rem !important; + } + .pr-sm-6 { + padding-right: 2rem !important; + } + .pb-sm-6 { + padding-bottom: 2rem !important; + } + .pl-sm-6 { + padding-left: 2rem !important; + } + .px-sm-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-sm-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-sm-7 { + padding: 2.5rem !important; + } + .pt-sm-7 { + padding-top: 2.5rem !important; + } + .pr-sm-7 { + padding-right: 2.5rem !important; + } + .pb-sm-7 { + padding-bottom: 2.5rem !important; + } + .pl-sm-7 { + padding-left: 2.5rem !important; + } + .px-sm-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-sm-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-sm-8 { + padding: 3rem !important; + } + .pt-sm-8 { + padding-top: 3rem !important; + } + .pr-sm-8 { + padding-right: 3rem !important; + } + .pb-sm-8 { + padding-bottom: 3rem !important; + } + .pl-sm-8 { + padding-left: 3rem !important; + } + .px-sm-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-sm-9 { + padding: 3.5rem !important; + } + .pt-sm-9 { + padding-top: 3.5rem !important; + } + .pr-sm-9 { + padding-right: 3.5rem !important; + } + .pb-sm-9 { + padding-bottom: 3.5rem !important; + } + .pl-sm-9 { + padding-left: 3.5rem !important; + } + .px-sm-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-sm-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-sm-10 { + padding: 4rem !important; + } + .pt-sm-10 { + padding-top: 4rem !important; + } + .pr-sm-10 { + padding-right: 4rem !important; + } + .pb-sm-10 { + padding-bottom: 4rem !important; + } + .pl-sm-10 { + padding-left: 4rem !important; + } + .px-sm-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-sm-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 50rem) { + .p-md-0 { + padding: 0 !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pr-md-0 { + padding-right: 0 !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0 { + padding-left: 0 !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1 { + padding-left: 0.25rem !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2 { + padding-left: 0.5rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-md-3 { + padding: 0.75rem !important; + } + .pt-md-3 { + padding-top: 0.75rem !important; + } + .pr-md-3 { + padding-right: 0.75rem !important; + } + .pb-md-3 { + padding-bottom: 0.75rem !important; + } + .pl-md-3 { + padding-left: 0.75rem !important; + } + .px-md-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-md-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-md-4 { + padding: 1rem !important; + } + .pt-md-4 { + padding-top: 1rem !important; + } + .pr-md-4 { + padding-right: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1rem !important; + } + .pl-md-4 { + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-md-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-md-5 { + padding: 1.5rem !important; + } + .pt-md-5 { + padding-top: 1.5rem !important; + } + .pr-md-5 { + padding-right: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 1.5rem !important; + } + .pl-md-5 { + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-md-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-md-6 { + padding: 2rem !important; + } + .pt-md-6 { + padding-top: 2rem !important; + } + .pr-md-6 { + padding-right: 2rem !important; + } + .pb-md-6 { + padding-bottom: 2rem !important; + } + .pl-md-6 { + padding-left: 2rem !important; + } + .px-md-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-md-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-md-7 { + padding: 2.5rem !important; + } + .pt-md-7 { + padding-top: 2.5rem !important; + } + .pr-md-7 { + padding-right: 2.5rem !important; + } + .pb-md-7 { + padding-bottom: 2.5rem !important; + } + .pl-md-7 { + padding-left: 2.5rem !important; + } + .px-md-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-md-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-md-8 { + padding: 3rem !important; + } + .pt-md-8 { + padding-top: 3rem !important; + } + .pr-md-8 { + padding-right: 3rem !important; + } + .pb-md-8 { + padding-bottom: 3rem !important; + } + .pl-md-8 { + padding-left: 3rem !important; + } + .px-md-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-md-9 { + padding: 3.5rem !important; + } + .pt-md-9 { + padding-top: 3.5rem !important; + } + .pr-md-9 { + padding-right: 3.5rem !important; + } + .pb-md-9 { + padding-bottom: 3.5rem !important; + } + .pl-md-9 { + padding-left: 3.5rem !important; + } + .px-md-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-md-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-md-10 { + padding: 4rem !important; + } + .pt-md-10 { + padding-top: 4rem !important; + } + .pr-md-10 { + padding-right: 4rem !important; + } + .pb-md-10 { + padding-bottom: 4rem !important; + } + .pl-md-10 { + padding-left: 4rem !important; + } + .px-md-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-md-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 66.5rem) { + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0 { + padding-left: 0 !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1 { + padding-left: 0.25rem !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2 { + padding-left: 0.5rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-lg-3 { + padding: 0.75rem !important; + } + .pt-lg-3 { + padding-top: 0.75rem !important; + } + .pr-lg-3 { + padding-right: 0.75rem !important; + } + .pb-lg-3 { + padding-bottom: 0.75rem !important; + } + .pl-lg-3 { + padding-left: 0.75rem !important; + } + .px-lg-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-lg-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-lg-4 { + padding: 1rem !important; + } + .pt-lg-4 { + padding-top: 1rem !important; + } + .pr-lg-4 { + padding-right: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1rem !important; + } + .pl-lg-4 { + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-lg-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-lg-5 { + padding: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 1.5rem !important; + } + .pr-lg-5 { + padding-right: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 1.5rem !important; + } + .pl-lg-5 { + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-lg-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-lg-6 { + padding: 2rem !important; + } + .pt-lg-6 { + padding-top: 2rem !important; + } + .pr-lg-6 { + padding-right: 2rem !important; + } + .pb-lg-6 { + padding-bottom: 2rem !important; + } + .pl-lg-6 { + padding-left: 2rem !important; + } + .px-lg-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-lg-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-lg-7 { + padding: 2.5rem !important; + } + .pt-lg-7 { + padding-top: 2.5rem !important; + } + .pr-lg-7 { + padding-right: 2.5rem !important; + } + .pb-lg-7 { + padding-bottom: 2.5rem !important; + } + .pl-lg-7 { + padding-left: 2.5rem !important; + } + .px-lg-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-lg-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-lg-8 { + padding: 3rem !important; + } + .pt-lg-8 { + padding-top: 3rem !important; + } + .pr-lg-8 { + padding-right: 3rem !important; + } + .pb-lg-8 { + padding-bottom: 3rem !important; + } + .pl-lg-8 { + padding-left: 3rem !important; + } + .px-lg-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-lg-9 { + padding: 3.5rem !important; + } + .pt-lg-9 { + padding-top: 3.5rem !important; + } + .pr-lg-9 { + padding-right: 3.5rem !important; + } + .pb-lg-9 { + padding-bottom: 3.5rem !important; + } + .pl-lg-9 { + padding-left: 3.5rem !important; + } + .px-lg-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-lg-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-lg-10 { + padding: 4rem !important; + } + .pt-lg-10 { + padding-top: 4rem !important; + } + .pr-lg-10 { + padding-right: 4rem !important; + } + .pb-lg-10 { + padding-bottom: 4rem !important; + } + .pl-lg-10 { + padding-left: 4rem !important; + } + .px-lg-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-lg-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 87.5rem) { + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0 { + padding-left: 0 !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1 { + padding-left: 0.25rem !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2 { + padding-left: 0.5rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xl-3 { + padding: 0.75rem !important; + } + .pt-xl-3 { + padding-top: 0.75rem !important; + } + .pr-xl-3 { + padding-right: 0.75rem !important; + } + .pb-xl-3 { + padding-bottom: 0.75rem !important; + } + .pl-xl-3 { + padding-left: 0.75rem !important; + } + .px-xl-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xl-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xl-4 { + padding: 1rem !important; + } + .pt-xl-4 { + padding-top: 1rem !important; + } + .pr-xl-4 { + padding-right: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1rem !important; + } + .pl-xl-4 { + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xl-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xl-5 { + padding: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 1.5rem !important; + } + .pr-xl-5 { + padding-right: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 1.5rem !important; + } + .pl-xl-5 { + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xl-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xl-6 { + padding: 2rem !important; + } + .pt-xl-6 { + padding-top: 2rem !important; + } + .pr-xl-6 { + padding-right: 2rem !important; + } + .pb-xl-6 { + padding-bottom: 2rem !important; + } + .pl-xl-6 { + padding-left: 2rem !important; + } + .px-xl-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xl-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xl-7 { + padding: 2.5rem !important; + } + .pt-xl-7 { + padding-top: 2.5rem !important; + } + .pr-xl-7 { + padding-right: 2.5rem !important; + } + .pb-xl-7 { + padding-bottom: 2.5rem !important; + } + .pl-xl-7 { + padding-left: 2.5rem !important; + } + .px-xl-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xl-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xl-8 { + padding: 3rem !important; + } + .pt-xl-8 { + padding-top: 3rem !important; + } + .pr-xl-8 { + padding-right: 3rem !important; + } + .pb-xl-8 { + padding-bottom: 3rem !important; + } + .pl-xl-8 { + padding-left: 3rem !important; + } + .px-xl-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xl-9 { + padding: 3.5rem !important; + } + .pt-xl-9 { + padding-top: 3.5rem !important; + } + .pr-xl-9 { + padding-right: 3.5rem !important; + } + .pb-xl-9 { + padding-bottom: 3.5rem !important; + } + .pl-xl-9 { + padding-left: 3.5rem !important; + } + .px-xl-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xl-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xl-10 { + padding: 4rem !important; + } + .pt-xl-10 { + padding-top: 4rem !important; + } + .pr-xl-10 { + padding-right: 4rem !important; + } + .pb-xl-10 { + padding-bottom: 4rem !important; + } + .pl-xl-10 { + padding-left: 4rem !important; + } + .px-xl-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xl-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media print { + .site-footer, + .site-button, + #edit-this-page, + #back-to-top, + .site-nav, + .main-header { + display: none !important; + } + .side-bar { + width: 100%; + height: auto; + border-right: 0 !important; + } + .site-header { + border-bottom: 1px solid #eeebee; + } + .site-title { + font-size: 1rem !important; + font-weight: 700 !important; + } + .text-small { + font-size: 8pt !important; + } + pre.highlight { + border: 1px solid #eeebee; + } + .main { + max-width: none; + margin-left: 0; + } +} +a.skip-to-main { + left: -999px; + position: absolute; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; + z-index: -999; +} + +a.skip-to-main:focus, +a.skip-to-main:active { + color: #002676; + background-color: #fff; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #5e41d0; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #fff; +} + +.main-content .module, +.module, .announcement { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05); + margin: 1rem -1rem; + display: flex; + flex-direction: column; + min-width: 0; + padding: 0 1rem; + position: relative; + word-wrap: break-word; +} +@media (min-width: 50rem) { + .main-content .module, + .module, .announcement { + border-radius: 4px; + margin: 1rem 0; + } +} +.module > :first-child, .announcement > :first-child { + border-top: none !important; +} +.module > :last-child, .announcement > :last-child { + border-bottom: none !important; +} +.module .label, +.module .staffer .staffer-badge, +.staffer .module .staffer-badge, .announcement .label, .announcement .staffer .staffer-badge, .staffer .announcement .staffer-badge { + border-radius: 4px; + margin-left: 0; + user-select: none; +} + +.main-content .module h1:first-child, +.main-content .module h2:first-child, +.main-content .module h3:first-child, +.main-content .module h4:first-child, +.main-content .module h5:first-child, +.main-content .module h6:first-child, +.module h1:first-child, +.module h2:first-child, +.module h3:first-child, +.module h4:first-child, +.module h5:first-child, +.module h6:first-child { + margin-top: 1rem; +} +.main-content .module > dl, +.module > dl { + border-bottom: 1px solid #eeebee; + border-top: 1px solid #eeebee; + display: grid; + grid-template-columns: max-content 1fr; + margin: 0.5rem -1rem; +} +.main-content .module > dl:first-child, +.module > dl:first-child { + margin-top: 0; +} +.main-content .module > dl:last-child, +.module > dl:last-child { + margin-bottom: 0; +} +@media (min-width: 66.5rem) { + .main-content .module > dl, + .module > dl { + grid-template-columns: 1fr 7fr; + } +} +.main-content .module > dl > dd, .main-content .module > dl > dt, +.module > dl > dd, +.module > dl > dt { + margin: 0; + padding: 0.5rem; +} +@media (min-width: 31.25rem) { + .main-content .module > dl > dd, .main-content .module > dl > dt, + .module > dl > dd, + .module > dl > dt { + padding: 0.5rem 1rem; + } +} +.main-content .module > dl > dt, +.module > dl > dt { + border-top: 1px solid #eeebee; + font-weight: normal; + text-align: right; +} +.main-content .module > dl > dt + dd, +.module > dl > dt + dd { + border-top: 1px solid #eeebee; +} +.main-content .module > dl > dt:first-child, +.module > dl > dt:first-child { + border-top: none; +} +.main-content .module > dl > dt:first-child + dd, +.module > dl > dt:first-child + dd { + border-top: none; +} +.main-content .module > dl > dt::after, +.module > dl > dt::after { + content: ":"; +} +.main-content .module > dl > dd + dd, +.module > dl > dd + dd { + padding-top: 0; +} +.main-content .module > dl > dd ol, .main-content .module > dl > dd ul, .main-content .module > dl > dd dl, +.module > dl > dd ol, +.module > dl > dd ul, +.module > dl > dd dl { + margin: 0; +} +.main-content .module > dl > dd dl, +.module > dl > dd dl { + display: flex; + flex-direction: column; +} +@media (min-width: 31.25rem) { + .main-content .module > dl > dd dl, + .module > dl > dd dl { + flex-direction: row; + } +} +.main-content .module > dl > dd dl dt, +.module > dl > dd dl dt { + flex: 0 0 62.5%; + margin: 0; +} +.main-content .module > dl > dd dl dd, +.module > dl > dd dl dd { + margin: 0; +} + +.schedule { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05); + margin: 1rem -1rem; + overflow-x: scroll; + position: relative; +} +@media (min-width: 50rem) { + .schedule { + border-radius: 4px; + margin: 1rem 0; + } +} +.schedule li::before { + display: none; +} +.schedule ul.schedule-timeline, +.schedule ul.schedule-group, +.schedule ul.schedule-events { + margin-top: 0; + padding-left: 0; +} +.schedule ul.schedule-timeline { + margin: 40px auto 0; + position: absolute; + width: 100%; +} +.schedule .schedule-time { + color: #44434d; + height: 40px; + margin: 0; + padding: 0.5rem; + position: relative; +} +.schedule .schedule-time::after { + background-color: #eeebee; + content: ""; + height: 1px; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.schedule .schedule-group { + display: flex; + margin-bottom: 0; + position: relative; +} +.schedule .schedule-day { + border-left: 1px solid #eeebee; + flex: 1 0 0; + margin: 0; + min-width: 120px; +} +.schedule .schedule-day:first-of-type { + border-left: 0; +} +.schedule h2.schedule-header { + align-items: center; + display: flex; + font-size: 18px !important; + height: 40px; + justify-content: center; + margin: 0; +} +.schedule .schedule-events { + display: flex; + padding: 0; + position: relative; +} +.schedule .schedule-event { + background-color: #959396; + border-radius: 4px; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), inset 0 -3px 0 rgba(0, 0, 0, 0.2); + color: #fff; + float: left; + height: 100%; + margin: 0; + padding: 0.25rem 0.5rem; + position: absolute; + width: 100%; +} +.schedule .schedule-event.lecture { + background-color: #e6e1e8; + color: #27262b; +} +.schedule .schedule-event.section { + background-color: #3f17dc; +} +.schedule .schedule-event.office-hours { + background-color: #006953; +} + +.staffer { + display: flex; + margin: 1rem 0; +} +.staffer .staffer-image { + border-radius: 50%; + height: 100px; + margin-right: 1rem; + width: auto; +} +.staffer p, +.staffer .staffer-name { + margin: 0.25rem !important; +} +.staffer p .anchor-heading, +.staffer .staffer-name .anchor-heading { + width: 1.8rem; + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.staffer .staffer-badge { + -webkit-user-select: none; + user-select: none; +} +.staffer .staffer-meta { + color: #27262b; +} + +html { + font-size: 16px; +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #5c5962; + background-color: #fff; + overflow-wrap: break-word; +} + +a, +.main-content .anchor-heading svg { + color: #002676; +} +a:hover, a:focus, +.main-content .anchor-heading svg:hover, +.main-content .anchor-heading svg:focus { + color: #0047dc; +} + +a:not([class]):hover { + text-decoration-color: #0047dc; +} + +h1, h2, h3, h4, h5, h6, +.serif { + font-family: "Source Serif 4", "Georiga", "Baskerville", serif; +} + +.label-green:not(g) { + background-color: #026e57; +} + +.label-red:not(g) { + background-color: #dd2e2e; +} + +code { + padding: 0.2em 0.4em; + border: none; +} + +iframe { + max-width: 100%; +} + +summary { + width: 100%; +} + +.main-content-wrap { + max-width: 1200px; + margin: auto; +} + +.main-content dl { + display: block; + grid-template-columns: none; +} +.main-content dt { + font-weight: 700; + text-align: start; +} +.main-content dt::after { + content: normal; +} +.main-content dd { + font-weight: normal; +} +.main-content dd + dt { + margin-top: 1em; +} + +.text-lighter { + color: #5c5962; +} + +a[target=_blank]::after { + font-family: "Font Awesome 6 Free"; + font-weight: 900; + content: "\f08e"; + padding: 0 0.25rem; +} + +/*# sourceMappingURL=just-the-docs-light.css.map */ \ No newline at end of file diff --git a/_site/assets/css/just-the-docs-light.css.map b/_site/assets/css/just-the-docs-light.css.map new file mode 100644 index 0000000..ef5bab4 --- /dev/null +++ b/_site/assets/css/just-the-docs-light.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/snytax_highliters/a11y-light.css","../../_sass/berkeley/berkeley.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/vendor/normalize.scss/normalize.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/base.scss","../../_sass/color_schemes/light.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/_variables.scss","../../_sass/berkeley/variables.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/content.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/navigation.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/labels.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/buttons.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/support/mixins/_buttons.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/search.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/tables.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/code.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_colors.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_layout.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_typography.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_lists.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/utilities/_spacing.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/print.scss","../../../.local/share/gem/ruby/3.2.0/gems/just-the-docs-0.9.0/_sass/skiptomain.scss","just-the-docs-light.scss","../../_sass/just-the-class/card.scss","../../_sass/just-the-class/module.scss","../../_sass/just-the-class/schedule.scss","../../_sass/just-the-class/staffer.scss"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;ACCQ;ADCR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;;;AAGF;EACE;;;AEtIF;AAEA;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AC1VF;EACE,cCEa;;;ADCf;EACE;;;AAGF;EACE;;AEmBA;EACE;;AClBA;EHHJ;IEyBI;;;;AFnBJ;EACE,aIfiB;EJgBjB;EACA,aIbiB;EJcjB,OIUY;EJTZ,kBIOM;EJNN;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;EACA,aI1CyB;EJ2CzB,OIlBY;;;AJqBd;EACE;EACA;;;AAGF;EACE,OKhDc;ELiDd;;;AAGF;EACE;EACA,uBI/BY;EJgCZ;;AAEA;EACE;;;AAIJ;EACE,aIvEiB;EJwEjB;EACA,aIvEiB;;;AJ0EnB;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,kBI/DY;EJgEZ;;;AAIF;EACE;EAGA;EACA;EACA;EACA;;;AM7GF;EACE;EACA;EACA;EACA,kBF6BY;;ADrBV;EGZJ;IAOI;IACA;IACA,OFwFW;IEvFX;IACA;IACA;;;AHAA;EGZJ;IAgBI;IACA,WDGQ;;;AFRR;EGQF;IAEI,aF2ES;;;ADrFX;EGQF;IAQI;;;AAOF;EACE;EACA,kBFJQ;;ADrBV;EGuBA;IAKI;IACA,kBFdA;;;AEiBF;EACE;;AHjCJ;EGgCE;IAII;;;;AAOV;EACE;;AH5CE;EG2CJ;IAII;IACA,WD1DY;;;;AC8DhB;EACE,aFaK;EEZL,gBFYK;EDvDL,eCuDK;EDtDL,cCsDK;;ADlEH;EGoDJ;IHrCI,eCqDG;IDpDH,cCoDG;;;ADpEH;EGoDJ;IAOI,aFSG;IERH,gBFQG;;;;AEJP;EACE;EACA;;AHlEE;EGgEJ;IAKI;IACA;IACA,QFmBY;;;;AEfhB;AAAA;AAAA;EAGE;;AH9EE;EG2EJ;AAAA;AAAA;IAMI,ODzEQ;;;;AC6EZ;EACE;;AAEA;EACE;;AHzFA;EGqFJ;IAQI;IACA,aFxBG;IEyBH,gBF7BG;IE8BH;IACA;;;;AAIJ;EACE;EACA,YFbc;EEcd;;AHxGE;EGqGJ;IAMI,QFjBY;IEkBZ,YFlBY;IEmBZ;;;;AAIJ;EACE;EACA;EACA;EACA;EACA,aFrDK;EEsDL,gBFtDK;EEuDL,OFpGY;EDTZ,eCuDK;EDtDL,cCsDK;;ADlEH;EGiHJ;IHlGI,eCqDG;IDpDH,cCoDG;;;AF/BL;EACE;;ACtCA;EGiHJ;IJvEI;IACA,aEhDuB;;;ADKvB;EGiHJ;IAcI,aF/DG;IEgEH,gBFhEG;;;;AE+EP;EACE;EACA;EACA,SFhFK;EEiFL;;;AHnJE;EGuJF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBFzGM;EE0GN;;AHlLE;EG+KJ;IAMI;IACA;;;;AAMJ;EACE;EACA;EACA;EACA,aF9HK;EE+HL,gBF/HK;EEgIL,OFlLY;EDLZ,eCuDK;EDtDL,cCsDK;;ADlEH;EG4LJ;IH7KI,eCqDG;IDpDH,cCoDG;;;AFvEL;EACE;;ACEA;EG4LJ;IJ1LI;;;ACFA;EG4LJ;IAaI;IACA;;;;AAIJ;EACE,OF5IK;EE6IL,QF7IK;EE8IL,ODlNc;;;AERhB;EACE,aHEoB;;AGApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YH+CC;;AG3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OHfM;EGgBN;EACA;;AL1BN;EACE;;ACRA;EI2BE;ILfF;;;ACZA;EI2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OH7CM;EG8CN;;AAMJ;EACE;;AAIJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAmBE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAKN;EACE;EACA;EACA,OHnFG;EGoFH;EACA,eHzFG;EG0FH,cH1FG;EG2FH;;AJ1JA;EImJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OFtKU;EEuKV;;AAYF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE,YH9JG;;;AI3EP;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;ANoBF;EACE;;AClBA;EKLF;IN2BE;;;ACtBA;EDOF;IACE;;;ACRA;EKLF;INiBE;;;AMPA;EACE;EACA,YJ+DC;EI9DD,aJuDC;EItDD,gBJsDC;EIrDD;EAEE,eJ0DD;EIzDC,cJqDD;;ADlEH;EKKA;IAeI,YJgDD;II/CC;IAEE,eJ6CH;II5CG,cJ4CH;;;AIrCD;EACE,OJkCD;EIjCC,QJiCD;EIhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OJWC;EIVD,QJUC;EITD;EACA,OH/DU;;AFCZ;EKqDA;IAYI,OJGD;IIFC,QJED;IIDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cJtBC;EIuBD;;AAEA;EACE;;AAEA;EACE,OJ7EI;;AIgFN;EACE,OJjFI;;AIuFR;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;;AN/HA;EACE;;ACEA;EKuHJ;INrHI;;;ACFA;EKuHJ;IASI;IACA,YJ/DG;IIgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OHpJM;;AGuJR;EACE,OHxJM;;;AGiKhB;EACE;EACA;;ANrKA;EACE;;ACEA;EKgKJ;IN9JI;;;AMmKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;ALjLA;EKgKJ;IAqBI,eJnHG;;;;ADlEH;EK2LJ;IAEI;;;;AAIJ;EACE;EACA,eJlIK;EImIL;;;AAGF;EACE;;AN3MA;EACE;;ACEA;EKuMJ;INrMI;;;AMyMF;EACE;;AAGF;EACE;EACA,cJjJG;EIkJH,aJlJG;EImJH,OJnMU;EIoMV;;AAIA;EACE;;;ACpON;AAAA;EAEE;;APoEA;AAAA;EACE;EACA,aElEuB;;ADKvB;EMXJ;AAAA;IP4EI;;;;AA5BF;AAAA;AAAA;EACE;;ACtCA;EMJJ;AAAA;AAAA;IP8CI;IACA,aEhDuB;;;;AFgCzB;AAAA;AAAA;AAAA;EACE;;AC5BA;EMEJ;AAAA;AAAA;AAAA;IP8BI;;;;AOzBJ;AAAA;EAEE;EACA;EACA;;APdA;AAAA;EACE;;ACEA;EMOJ;AAAA;IPLI;;;;AOcJ;EACE;;;APVA;AAAA;AAAA;EACE;;ACRA;EMoBJ;AAAA;AAAA;IPRI;;;;AAfF;AAAA;EACE;;ACEA;EMyBJ;AAAA;IPvBI;;;;AALF;EACE;;ACEA;EM8BJ;IP5BI;;;;AOgCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cNoEK;EMnEL,aNmEK;EMlEL,ONiBM;EMhBN;EACA;EACA,kBN6BS;EM5BT;;ARLA;AAAA;EACE;;ACEA;EORJ;AAAA;IRUI;;;;AQKJ;EACE,kBN2BU;;;AMxBZ;EACE,kBNcW;;;AMXb;EACE,kBN2BQ;;;AMxBV;EACE,ONFY;EMGZ,kBNkBW;;;AOlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ONCc;EMAd;EACA;EACA;EACA,kBVHkB;EUIlB;EACA,ePyEc;EOxEd,YACE;EAEF;;AAEA;EACE;EACA;EACA;;AAGF;EAEE;;AAGF;EAEE;;AAGF;EAIE;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;AAKA;EAEE;EACA;EACA;EACA;EACA;;;AAKN;EACE,ON7Dc;EM8Dd;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QTgFM;ES/EN,STuEK;EStEL;;AVME;EUZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QT8DK;ES7DL;EACA,eTmEc;ESlEd,YACE;EAEF;;AVdE;EUKJ;IAYI;IACA;IACA,WTwEmB;ISvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,OThBY;ESiBZ,kBTnBM;ESoBN;EACA;EACA;EACA;EACA;;AVvCE;EU2BJ;IAeI;IACA;IACA,kBT7BI;IS8BJ;;;AAGF;EACE;;AAEA;EACE,ORrDU;;;AQ0DhB;EACE;EACA;EACA;EACA,cTKK;;ADlEH;EUyDJ;IAOI,cTIG;ISHH;;;AAGF;EACE;EACA;EACA;EACA,OTxDU;;;AS4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBTpEM;ESqEN,4BTPc;ESQd,2BTRc;ESSd,YACE;;AVvFA;EU4EJ;IAeI;IACA,OTDmB;ISEnB;;;;AAIJ;EACE;EACA,eTpCK;ESqCL;;AXnFA;EACE;;AClBA;EUiGJ;IX3EI;;;ACtBA;EDOF;IACE;;;ACRA;EUiGJ;IXrFI;;;;AWgGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBZrHa;;;AYyHjB;EACE;EACA,aT7DK;ES8DL,gBT9DK;;ADhEH;EU2HJ;IAMI;IACA;IACA,eTnEG;ISoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;AXvIF;EACE;;ACRA;EU6IF;IXjIE;;;ACZA;EDHF;IACE;;;ACEA;EU6IF;IX3IE;;;AWoJF;EACE,OTrFG;ESsFH,QTtFG;ESuFH,cTzFG;ES0FH,OR3JY;EQ4JZ;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OT5JY;ES6JZ;EACA;;AX3LA;EACE;;ACYA;EUwKJ;IXhLI;;;;AW0LJ;EACE;EACA,aTpHK;ESqHL,gBTrHK;ESsHL,cTpHK;ESqHL,aTvHK;ESwHL,OTxKY;ESyKZ;EACA,aT9GO;ES+GP,mBTrKY;;AFzBZ;EACE;;ACEA;EUkLJ;IXhLI;;;ACFA;EUkLJ;IAaI;IACA;IACA,cTjIG;ISkIH;IACA;;;;AAIJ;EACE,YTzIK;;;AS4IP;EACE;;;AAGF;EACE;;AXzMA;EACE;;ACRA;EU+MJ;IXnMI;;;;AWwMJ;EACE;EACA,OTpJK;ESqJL,QTrJK;ESsJL;EACA,OTlJK;ESmJL,QTnJK;ESoJL,kBT5MM;ES6MN;EACA;EACA,YACE;EAEF;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,QTvLI;ESwLJ;;AVhQA;EU8PF;IAKI,OTxKiB;ISyKjB,YACE;;;AAKN;EACE,kBT5PI;;ADfJ;EU0QF;IAII;;;AV9QF;EUkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AVjSF;EUuSA;IACE;IACA;IACA;;;AAIJ;EACE,aTvOI;;ADxEJ;EU8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eV0EK;EUzEL;EACA,eVkFc;EUjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA,kBVIM;EUHN;EACA;;AZNA;AAAA;EACE;;ACRA;EWOJ;AAAA;IZKI;;;AYKF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBVkCD;;;AU3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBXyBU;EWxBV;EACA,eX+EY;;;AW1EhB;EACE,cXkBY;;;AWiCd;AAAA;AAAA;EAGE;EACA,eXMK;EWLL,kBXvCY;EWwCZ,eXgBc;EWfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OXLG;EWMH;EACA;EACA;EACA;EACA;EACA,kBXvDU;EWwDV,OX5DU;EW6DV;;AAEA;AAAA;AAAA;EACE,MXhEQ;;AWmEV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EACE;EACA,eXlEK;;AW2CL;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SXjFG;EWkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA,kBXjJU;EWkJV;;Ab1KF;AAAA;EACE;;ACEA;EYkKF;AAAA;IbhKE;;;Aa0KF;EACE;EACA,eX7GG;EW8GH,cX9GG;;AWiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SX1HK;EW2HL,eX3HK;EW4HL;EACA;EACA,eXlHc;;AWoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,YXpMY;EWyMV,OX7MU;;;AWkNd;EACE,YX/MY;;;AY/Bd;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AdPE;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AflGA;EACE;;ACYA;EeZJ;IhBII;;;;AAKF;AAAA;EACE;;ACEA;EeRJ;AAAA;IhBUI;;;;AAKF;EACE;;ACRA;EeJJ;IhBgBI;;;;AAKF;EACE;;AClBA;EeAJ;IhBsBI;;;;AAKF;EACE;;AC5BA;EeIJ;IhB4BI;;;;AAKF;EACE;;ACtCA;EeQJ;IhBkCI;IACA,aEhDuB;;;;AFqDzB;EACE;EACA,aEvDuB;;ADKvB;EeYJ;IhB0CI;;;;AAKF;EACE;EACA,aElEuB;;ADKvB;EegBJ;IhBiDI;;;;AAKF;EACE;EACA,aE7EuB;;ADKvB;EeoBJ;IhBwDI;;;;AAKF;EACE;EACA,aExFuB;;ADKvB;EewBJ;IhB+DI;;;;AgB3DJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,adxDiB;;;Ac2DnB;EACE,ad1DyB;;;Ac6D3B;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AC/EF;EACE;EACA;EACA;;AAGE;EACE;;;ACLN;EACE;EACA;;;AAQA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AjBlCA;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AAaN;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AjB7GA;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjB/IJ;EiBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AC3JR;EACE;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;;AClCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE,OjBFc;EiBGd,kBlBaM;EkBZN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACtBF;EACE,kBnBsBM;;;AoBnBR;AAAA;EATE;EACA;EAUA;EACA;EACA;EACA;EACA;EACA;;ArBHE;EqBJJ;AAAA;IALI,epBsFY;IoBrFZ;;;AAaF;EACE;;AAGF;EACE;;AAGF;AAAA;AAAA;EACE,epB+DY;EoB9DZ;EACA;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE,YrBqEC;;AqBjEL;AAAA;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;EACE;;AtBbF;EsBCF;AAAA;IAgBI;;;AAGF;AAAA;AAAA;EACE;EACA,SrB0CC;;ADhEH;EsBoBA;AAAA;AAAA;IAKI;;;AAIJ;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;EACE;;AAEA;AAAA;EACE;;AAIJ;AAAA;EACE;;AAOF;AAAA;EACE;;AAGF;AAAA;AAAA;AAAA;EACE;;AAGF;AAAA;EACE;EACA;;AtBjEJ;EsB+DE;AAAA;IAKI;;;AAGF;AAAA;EACE;EACA;;AAGF;AAAA;EACE;;;AC3FV;EFCE;EACA;EEAA;EACA;;AvBWE;EuBdJ;IFKI,epBsFY;IoBrFZ;;;AEDF;EACE;;AAGF;AAAA;AAAA;EAGE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAEE,OtBQU;EsBPV;EACA;EACA,StBmDG;EsBlDH;;AAEA;EACE,kBtBKQ;EsBJR;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE,kBtB5CU;EsB6CV,etBgBY;EsBfZ;EACA,OtBhDI;EsBiDJ;EACA;EACA;EACA;EACA;EACA;;AAWA;EACE,kBtBzDQ;EsB0DR,OtB9DQ;;AsBiEV;EACE;;AAGF;EACE;;;ACxGN;EACE;EACA;;AAEA;EACE;EACA;EACA,cvByEG;EuBxEH;;AAGF;AAAA;EAEE;;AAEF;AAAA;EACI;EACA;EACA;;AAIJ;EAGE;EACA;;AAGF;EACE,OvBIU;;;AN3Bd;EACE;;;AAGF;EACE,aMTiB;ENUjB;EACA,aMPiB;ENQjB,OMgBY;ENfZ,kBMaM;ENZN;;;AAIF;AAAA;EAEE,OOVc;;APYd;AAAA;AAAA;EAEE,OOVqB;;;APczB;EACE;;;AAGF;AAAA;EAEE,aO3BkB;;;AP+BpB;EACE,kBMQU;;;ANLZ;EACE,kBMYQ;;;ANTV;EACE;EACA;;;AAGF;EACE;;;AAOF;EAGE;;;AAGF;EACE,WOjEc;EPkEd;;;AAIA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;;;AAMN;EACE,OMpEY;;;ANuEd;EACE;EACA;EACA;EACA","sourcesContent":["/* a11y-light theme */\r\n/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */\r\n/* @author: ericwbailey */\r\n/* Adapted to pygments/rouge by @cycomachead */\r\n\r\n:root {\r\n --pygments-a11y-bg-color: #fefefe;\r\n --pygments-a11y-light-on-dark: #FFF; /* Used for errors */\r\n --pygments-a11y-light-gray: #696969; /* comments */\r\n --pygments-a11y-dark-gray: #545454;\r\n --pygments-a11y-purple: #7928a1;\r\n --pygments-a11y-blue: #007faa;\r\n --pygments-a11y-green: #008000;\r\n --pygments-a11y-yellow: #aa5d00; /* attributes */\r\n --pygments-a11y-orange: #aa5d00;\r\n --pygments-a11y-red: #d91e18;\r\n}\r\n\r\n.highlight,\r\npre.highlight {\r\n background: var(--pygments-a11y-bg-color);\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight pre,\r\n.highlight .hll,\r\n.highlight .w {\r\n background: var(--pygments-a11y-bg-color);\r\n}\r\n\r\n.highlight .c {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .err {\r\n color: var(--pygments-a11y-light-on-dark);\r\n background-color: var(--pygments-a11y-red);\r\n}\r\n\r\n.highlight .k,\r\n.highlight .kc,\r\n.highlight .kd,\r\n.highlight .kn,\r\n.highlight .kp,\r\n.highlight .kr,\r\n.highlight .kt {\r\n color: var(--pygments-a11y-purple);\r\n}\r\n\r\n.highlight .n,\r\n.highlight .o,\r\n.highlight .p,\r\n.highlight .nf,\r\n.highlight .nn,\r\n.highlight .nx {\r\n color: var(--pygments-a11y-dark-gray);\r\n}\r\n\r\n.highlight .cm,\r\n.highlight .cp,\r\n.highlight .c1,\r\n.highlight .cs {\r\n color: var(--pygments-a11y-light-gray);\r\n font-style: italic;\r\n}\r\n\r\n.highlight .ge {\r\n font-style: italic;\r\n}\r\n\r\n.highlight .gs,\r\n.highlight .ow {\r\n font-weight: 700;\r\n}\r\n\r\n.highlight .l,\r\n.highlight .ld,\r\n.highlight .s,\r\n.highlight .sb,\r\n.highlight .sc,\r\n.highlight .sd,\r\n.highlight .s2,\r\n.highlight .se,\r\n.highlight .sh,\r\n.highlight .si,\r\n.highlight .sx,\r\n.highlight .s1 {\r\n color: var(--pygments-a11y-green);\r\n}\r\n\r\n.highlight .bp,\r\n.highlight .nb,\r\n.highlight .nc,\r\n.highlight .no,\r\n.highlight .nd,\r\n.highlight .ni,\r\n.highlight .ne,\r\n.highlight .nl,\r\n.highlight .nv,\r\n.highlight .py,\r\n.highlight .vc,\r\n.highlight .vg {\r\n color: var(--pygments-a11y-orange); /* #ca7601; */\r\n}\r\n\r\n.highlight .gd,\r\n.highlight .nt,\r\n.highlight .vi,\r\n.highlight .language-json .w + .s2 {\r\n color: var(--pygments-a11y-red); /* #e35549 */\r\n}\r\n\r\n.highlight .il,\r\n.highlight .m,\r\n.highlight .mf,\r\n.highlight .mh,\r\n.highlight .mi,\r\n.highlight .mo,\r\n.highlight .na {\r\n color: var(--pygments-a11y-yellow); /* #b66a00 */\r\n}\r\n\r\n.highlight .sr,\r\n.highlight .ss,\r\n.highlight .language-json .kc {\r\n color: var(--pygments-a11y-blue); /*#0083bb */\r\n}\r\n\r\n.highlight .gu {\r\n color: var(--pygments-a11y-light-gray); /* was #75715e kind of dark yellow */\r\n}\r\n\r\n.highlight .gi {\r\n color: var(--pygments-a11y-green); /* was #43d089 seafoam ish */\r\n}\r\n","// This config applies to all berkeley courses.\r\n// It is loaded *after* all Just-the-class customizations\r\n\r\n// UC Berkeley fonts 'Inter' (sans serif) 'Source Serif' (serif), and 'Source Code Pro' (monospace)\r\n@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap');\r\n\r\n// Override default JTD CSS for larger/more accessibile fonts.\r\nhtml {\r\n font-size: 16px;\r\n}\r\n\r\nbody {\r\n font-family: $body-font-family;\r\n font-size: inherit;\r\n line-height: $body-line-height;\r\n color: $body-text-color;\r\n background-color: $body-background-color;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n// Link Colors\r\na,\r\n.main-content .anchor-heading svg {\r\n color: $link-color;\r\n\r\n &:hover,\r\n &:focus {\r\n color: $hover-focus-link-color;\r\n }\r\n}\r\n\r\na:not([class]):hover {\r\n text-decoration-color: lighten($link-color, 20%);\r\n}\r\n\r\nh1, h2, h3, h4, h5, h6,\r\n.serif {\r\n font-family: $serif-font-family;\r\n}\r\n\r\n// Override JTD to be darker\r\n.label-green:not(g) {\r\n background-color: $green-300;\r\n}\r\n\r\n.label-red:not(g) {\r\n background-color: $red-300;\r\n}\r\n\r\ncode {\r\n padding: 0.2em 0.4em;\r\n border: none;\r\n}\r\n\r\niframe {\r\n max-width: 100%;\r\n}\r\n\r\ndetails {\r\n @extend .mb-4;\r\n}\r\n\r\nsummary {\r\n @extend .btn, .btn-outline;\r\n\r\n width: 100%;\r\n}\r\n\r\n.main-content-wrap {\r\n max-width: $content-width;\r\n margin: auto;\r\n}\r\n\r\n.main-content {\r\n dl {\r\n display: block;\r\n grid-template-columns: none;\r\n }\r\n\r\n dt {\r\n font-weight: 700;\r\n text-align: start;\r\n\r\n &::after {\r\n content: normal;\r\n }\r\n }\r\n\r\n dd {\r\n font-weight: normal;\r\n\r\n + dt {\r\n margin-top: 1em;\r\n }\r\n }\r\n}\r\n\r\n// This is intended to be used for the footer\r\n.text-lighter {\r\n color: $body-lighter-color;\r\n}\r\n\r\na[target=\"_blank\"]::after {\r\n font-family: 'Font Awesome 6 Free';\r\n font-weight: 900;\r\n content: \"\\f08e\";\r\n padding: 0 0.25rem;\r\n}\r\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","// This file is coped from Just The Docs\r\n// Individual courses should not modify it!\r\n// All deviations should be documented.\r\n// https://github.com/just-the-docs/just-the-docs/blob/main/_sass/color_schemes/light.scss\r\n\r\n/////////// Do not modify this section.\r\n$color-scheme: light !default;\r\n$body-background-color: $white !default;\r\n$body-heading-color: $grey-dk-300 !default;\r\n$body-text-color: $grey-dk-100 !default;\r\n$link-color: $purple-000 !default;\r\n$nav-child-link-color: $grey-dk-100 !default;\r\n$sidebar-color: $grey-lt-000 !default;\r\n$base-button-color: #f7f7f7 !default;\r\n$btn-primary-color: $purple-100 !default;\r\n$code-background-color: $grey-lt-000 !default;\r\n$feedback-color: darken($sidebar-color, 3%) !default;\r\n$table-background-color: $white !default;\r\n$search-background-color: $white !default;\r\n$search-result-preview-color: $grey-dk-000 !default;\r\n/////////////////// Add modifications below\r\n\r\n@import \"../snytax_highliters/a11y-light\";\r\n\r\n// Minimum lightness on white.\r\n$body-lighter-color: $grey-dk-100;\r\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// Common Berkeley Variables.\r\n// This file is explicitly included before berkeley.scss in setup.scss\r\n// Some colors may be override by berkeley_light or berkeley_dark\r\n\r\n$content-width: 1200px;\r\n\r\n// Typography\r\n$mono-font-family: \"Source Code Pro\", \"SFMono-Regular\", menlo, consolas, monospace !default;\r\n$body-font-family: 'Inter', system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\r\nroboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\r\n$serif-font-family: 'Source Serif 4', 'Georiga', 'Baskerville', serif;\r\n\r\n$berkeley-blue-old: #003262;\r\n$berkeley-blue: #002676; // rgb(0, 38, 118);\r\n\r\n// Colors\r\n$link-color: $berkeley-blue;\r\n$hover-focus-link-color: lighten($link-color, 20%);\r\n\r\n// Layout\r\n$gutter-spacing: $sp-6;\r\n$gutter-spacing-sm: $sp-4;\r\n$nav-width: 256px;\r\n\r\n// Components\r\n$box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05);\r\n$module-date-color: $link-color;\r\n$staffer-image-size: 100px;\r\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"•\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n","@mixin abstract-card() {\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07), 0 4px 14px rgba(0, 0, 0, 0.05);\r\n margin: $sp-4 (-$gutter-spacing-sm);\r\n\r\n @include mq(md) {\r\n border-radius: $border-radius;\r\n margin: $sp-4 0;\r\n }\r\n}\r\n\r\n%card {\r\n @include abstract-card();\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 0;\r\n padding: 0 $sp-4;\r\n position: relative;\r\n word-wrap: break-word;\r\n\r\n >:first-child {\r\n border-top: none !important;\r\n }\r\n\r\n >:last-child {\r\n border-bottom: none !important;\r\n }\r\n\r\n .label {\r\n border-radius: $border-radius;\r\n margin-left: 0;\r\n user-select: none;\r\n }\r\n}\r\n",".main-content .module,\r\n.module {\r\n @extend %card;\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6 {\r\n &:first-child {\r\n margin-top: $sp-4;\r\n }\r\n }\r\n\r\n >dl {\r\n border-bottom: $border $border-color;\r\n border-top: $border $border-color;\r\n display: grid;\r\n grid-template-columns: max-content 1fr;\r\n margin: $sp-2 (-$sp-4);\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n @include mq(lg) {\r\n grid-template-columns: 1fr 7fr;\r\n }\r\n\r\n %module-item {\r\n margin: 0;\r\n padding: $sp-2;\r\n\r\n @include mq(sm) {\r\n padding: $sp-2 $sp-4;\r\n }\r\n }\r\n\r\n >dt {\r\n @extend %module-item;\r\n border-top: $border $border-color;\r\n font-weight: normal;\r\n text-align: right;\r\n\r\n +dd {\r\n border-top: $border $border-color;\r\n }\r\n\r\n &:first-child {\r\n border-top: none;\r\n\r\n +dd {\r\n border-top: none;\r\n }\r\n }\r\n\r\n &::after {\r\n content: \":\";\r\n }\r\n }\r\n\r\n >dd {\r\n @extend %module-item;\r\n\r\n +dd {\r\n padding-top: 0;\r\n }\r\n\r\n ol, ul, dl {\r\n margin: 0;\r\n }\r\n\r\n dl {\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @include mq(sm) {\r\n flex-direction: row;\r\n }\r\n\r\n dt {\r\n flex: 0 0 62.5%;\r\n margin: 0;\r\n }\r\n\r\n dd {\r\n margin: 0;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".schedule {\r\n @include abstract-card();\r\n overflow-x: scroll;\r\n position: relative;\r\n\r\n li::before {\r\n display: none;\r\n }\r\n\r\n ul.schedule-timeline,\r\n ul.schedule-group,\r\n ul.schedule-events {\r\n margin-top: 0;\r\n padding-left: 0;\r\n }\r\n\r\n ul.schedule-timeline {\r\n margin: 40px auto 0;\r\n position: absolute;\r\n width: 100%;\r\n }\r\n\r\n .schedule-time {\r\n @extend .fs-2;\r\n color: $grey-dk-200;\r\n height: 40px;\r\n margin: 0;\r\n padding: $sp-2;\r\n position: relative;\r\n\r\n &::after {\r\n background-color: $border-color;\r\n content: '';\r\n height: 1px;\r\n left: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .schedule-group {\r\n display: flex;\r\n margin-bottom: 0;\r\n position: relative;\r\n }\r\n\r\n .schedule-day {\r\n border-left: $border $border-color;\r\n flex: 1 0 0;\r\n margin: 0;\r\n min-width: 120px;\r\n\r\n &:first-of-type {\r\n border-left: 0;\r\n }\r\n }\r\n\r\n h2.schedule-header {\r\n align-items: center;\r\n display: flex;\r\n font-size: 18px !important;\r\n height: 40px;\r\n justify-content: center;\r\n margin: 0;\r\n }\r\n\r\n .schedule-events {\r\n display: flex;\r\n padding: 0;\r\n position: relative;\r\n }\r\n\r\n .schedule-event {\r\n background-color: $grey-dk-000;\r\n border-radius: $border-radius;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, .1), inset 0 -3px 0 rgba(0, 0, 0, .2);\r\n color: $white;\r\n float: left;\r\n height: 100%;\r\n margin: 0;\r\n padding: $sp-1 $sp-2;\r\n position: absolute;\r\n width: 100%;\r\n\r\n .name {\r\n @extend .fs-3, .fw-700;\r\n }\r\n\r\n .time,\r\n .location {\r\n @extend .fs-2;\r\n }\r\n\r\n &.lecture {\r\n background-color: $grey-lt-300;\r\n color: $grey-dk-300;\r\n }\r\n\r\n &.section {\r\n background-color: darken($purple-000, 15%);\r\n }\r\n\r\n &.office-hours {\r\n background-color: darken($green-200, 10%);\r\n }\r\n }\r\n}\r\n",".staffer {\r\n display: flex;\r\n margin: $sp-4 0;\r\n\r\n .staffer-image {\r\n border-radius: 50%;\r\n height: 100px;\r\n margin-right: $sp-4;\r\n width: auto;\r\n }\r\n\r\n p,\r\n .staffer-name {\r\n margin: $sp-1 !important;\r\n\r\n .anchor-heading {\r\n width: 1.8rem;\r\n padding-left: 0.5rem;\r\n padding-right: 0.5rem;\r\n }\r\n }\r\n\r\n .staffer-badge {\r\n @extend .label, .text-grey-dk-300, .bg-grey-lt-200;\r\n\r\n -webkit-user-select: none;\r\n user-select: none;\r\n }\r\n\r\n .staffer-meta {\r\n color: $grey-dk-300;\r\n }\r\n}\r\n"],"file":"just-the-docs-light.css"} \ No newline at end of file diff --git a/_site/assets/images/Aanvi_Kothari.jpg b/_site/assets/images/Aanvi_Kothari.jpg new file mode 100644 index 0000000..2cd03f2 Binary files /dev/null and b/_site/assets/images/Aanvi_Kothari.jpg differ diff --git a/_site/assets/images/Bryan_Flores.png b/_site/assets/images/Bryan_Flores.png new file mode 100644 index 0000000..911481f Binary files /dev/null and b/_site/assets/images/Bryan_Flores.png differ diff --git a/_site/assets/images/Caesar_Li.jpg b/_site/assets/images/Caesar_Li.jpg new file mode 100644 index 0000000..10debd2 Binary files /dev/null and b/_site/assets/images/Caesar_Li.jpg differ diff --git a/_site/assets/images/Dream_Lopez.jpg b/_site/assets/images/Dream_Lopez.jpg new file mode 100644 index 0000000..9352e83 Binary files /dev/null and b/_site/assets/images/Dream_Lopez.jpg differ diff --git a/_site/assets/images/Elise_Vambenepe.JPG b/_site/assets/images/Elise_Vambenepe.JPG new file mode 100644 index 0000000..58a84de Binary files /dev/null and b/_site/assets/images/Elise_Vambenepe.JPG differ diff --git a/_site/assets/images/Elliott_Chia.png b/_site/assets/images/Elliott_Chia.png new file mode 100644 index 0000000..b41df1d Binary files /dev/null and b/_site/assets/images/Elliott_Chia.png differ diff --git a/_site/assets/images/Harry_Qian.JPG b/_site/assets/images/Harry_Qian.JPG new file mode 100644 index 0000000..27d02e7 Binary files /dev/null and b/_site/assets/images/Harry_Qian.JPG differ diff --git a/_site/assets/images/Jaylen_He.png b/_site/assets/images/Jaylen_He.png new file mode 100644 index 0000000..9cf8e90 Binary files /dev/null and b/_site/assets/images/Jaylen_He.png differ diff --git a/_site/assets/images/Julio_Diaz.png b/_site/assets/images/Julio_Diaz.png new file mode 100644 index 0000000..7d5ac54 Binary files /dev/null and b/_site/assets/images/Julio_Diaz.png differ diff --git a/_site/assets/images/Nahee_Jeong.png b/_site/assets/images/Nahee_Jeong.png new file mode 100644 index 0000000..cf8b929 Binary files /dev/null and b/_site/assets/images/Nahee_Jeong.png differ diff --git a/_site/assets/images/Nicolas_Perez.jpeg b/_site/assets/images/Nicolas_Perez.jpeg new file mode 100644 index 0000000..895b632 Binary files /dev/null and b/_site/assets/images/Nicolas_Perez.jpeg differ diff --git a/_site/assets/images/P1-Part1Tests.png b/_site/assets/images/P1-Part1Tests.png new file mode 100644 index 0000000..c9c9733 Binary files /dev/null and b/_site/assets/images/P1-Part1Tests.png differ diff --git a/_site/assets/images/P1-Part2Tests.png b/_site/assets/images/P1-Part2Tests.png new file mode 100644 index 0000000..75ce366 Binary files /dev/null and b/_site/assets/images/P1-Part2Tests.png differ diff --git a/_site/assets/images/P1-Part3Tests.png b/_site/assets/images/P1-Part3Tests.png new file mode 100644 index 0000000..262226f Binary files /dev/null and b/_site/assets/images/P1-Part3Tests.png differ diff --git a/_site/assets/images/Pfp.JPG.jpg b/_site/assets/images/Pfp.JPG.jpg new file mode 100644 index 0000000..7d48c41 Binary files /dev/null and b/_site/assets/images/Pfp.JPG.jpg differ diff --git a/_site/assets/images/Raka_Litanto.jpg b/_site/assets/images/Raka_Litanto.jpg new file mode 100644 index 0000000..89d1695 Binary files /dev/null and b/_site/assets/images/Raka_Litanto.jpg differ diff --git a/_site/assets/images/Rhea_Minglani.jpg b/_site/assets/images/Rhea_Minglani.jpg new file mode 100644 index 0000000..004414f Binary files /dev/null and b/_site/assets/images/Rhea_Minglani.jpg differ diff --git a/_site/assets/images/Roberto_Buendia.png b/_site/assets/images/Roberto_Buendia.png new file mode 100644 index 0000000..9c9b9f0 Binary files /dev/null and b/_site/assets/images/Roberto_Buendia.png differ diff --git a/_site/assets/images/Stacey_Yoo.png b/_site/assets/images/Stacey_Yoo.png new file mode 100644 index 0000000..d207b08 Binary files /dev/null and b/_site/assets/images/Stacey_Yoo.png differ diff --git a/_site/assets/images/Vivek_Putta.png b/_site/assets/images/Vivek_Putta.png new file mode 100644 index 0000000..12b19ff Binary files /dev/null and b/_site/assets/images/Vivek_Putta.png differ diff --git a/_site/assets/images/Wen_Cao.png b/_site/assets/images/Wen_Cao.png new file mode 100644 index 0000000..058bc29 Binary files /dev/null and b/_site/assets/images/Wen_Cao.png differ diff --git a/_site/assets/images/aditi_jain.png b/_site/assets/images/aditi_jain.png new file mode 100644 index 0000000..0220df9 Binary files /dev/null and b/_site/assets/images/aditi_jain.png differ diff --git a/_site/assets/images/anneliese_galler.jpg b/_site/assets/images/anneliese_galler.jpg new file mode 100644 index 0000000..4ef413f Binary files /dev/null and b/_site/assets/images/anneliese_galler.jpg differ diff --git a/_site/assets/images/bjc-logo.png b/_site/assets/images/bjc-logo.png new file mode 100644 index 0000000..850388f Binary files /dev/null and b/_site/assets/images/bjc-logo.png differ diff --git a/_site/assets/images/dan.jpg b/_site/assets/images/dan.jpg new file mode 100644 index 0000000..d948d33 Binary files /dev/null and b/_site/assets/images/dan.jpg differ diff --git a/_site/assets/images/default_photo.jpg b/_site/assets/images/default_photo.jpg new file mode 100644 index 0000000..8cecc30 Binary files /dev/null and b/_site/assets/images/default_photo.jpg differ diff --git a/_site/assets/images/dorottya.jpg b/_site/assets/images/dorottya.jpg new file mode 100644 index 0000000..60aed64 Binary files /dev/null and b/_site/assets/images/dorottya.jpg differ diff --git a/_site/assets/images/dorottya_urmossy.jpg b/_site/assets/images/dorottya_urmossy.jpg new file mode 100644 index 0000000..9c9da73 Binary files /dev/null and b/_site/assets/images/dorottya_urmossy.jpg differ diff --git a/_site/assets/images/frederickdehmel.jpg b/_site/assets/images/frederickdehmel.jpg new file mode 100644 index 0000000..69ba161 Binary files /dev/null and b/_site/assets/images/frederickdehmel.jpg differ diff --git a/_site/assets/images/general/i1.png b/_site/assets/images/general/i1.png new file mode 100644 index 0000000..d5f9b9d Binary files /dev/null and b/_site/assets/images/general/i1.png differ diff --git a/_site/assets/images/hala_boges.jpg b/_site/assets/images/hala_boges.jpg new file mode 100644 index 0000000..fc8a6c4 Binary files /dev/null and b/_site/assets/images/hala_boges.jpg differ diff --git a/_site/assets/images/hala_boges.txt b/_site/assets/images/hala_boges.txt new file mode 100644 index 0000000..212731f --- /dev/null +++ b/_site/assets/images/hala_boges.txt @@ -0,0 +1 @@ +Hi there :) My name is Hala and I’m a junior studying EECS. CS10 has been such a fun and exciting way to kickstart my coding journey, and the amazing staff make it even better! Outside of class, I love an adventure—whether it’s rock climbing, jiu-jitsu, or exploring the outdoors. I’m also passionate about cooking, baking, and finding new ways to be creative. Looking forward to a great semester with all of you! \ No newline at end of file diff --git a/_site/assets/images/hannah_chung.jpg b/_site/assets/images/hannah_chung.jpg new file mode 100644 index 0000000..245d983 Binary files /dev/null and b/_site/assets/images/hannah_chung.jpg differ diff --git a/_site/assets/images/harry.jpg b/_site/assets/images/harry.jpg new file mode 100644 index 0000000..d776ea6 Binary files /dev/null and b/_site/assets/images/harry.jpg differ diff --git a/_site/assets/images/john_wang.png b/_site/assets/images/john_wang.png new file mode 100644 index 0000000..c2417d6 Binary files /dev/null and b/_site/assets/images/john_wang.png differ diff --git a/_site/assets/images/lab_images/Jaylen_He.png b/_site/assets/images/lab_images/Jaylen_He.png new file mode 100644 index 0000000..cdd2e33 Binary files /dev/null and b/_site/assets/images/lab_images/Jaylen_He.png differ diff --git a/_site/assets/images/lab_images/lab2_b1_1.PNG b/_site/assets/images/lab_images/lab2_b1_1.PNG new file mode 100644 index 0000000..2d6ea5c Binary files /dev/null and b/_site/assets/images/lab_images/lab2_b1_1.PNG differ diff --git a/_site/assets/images/lab_images/lab2_b1_2.PNG b/_site/assets/images/lab_images/lab2_b1_2.PNG new file mode 100644 index 0000000..70a6348 Binary files /dev/null and b/_site/assets/images/lab_images/lab2_b1_2.PNG differ diff --git a/_site/assets/images/lab_images/lab2_b2_1.PNG b/_site/assets/images/lab_images/lab2_b2_1.PNG new file mode 100644 index 0000000..b1b975a Binary files /dev/null and b/_site/assets/images/lab_images/lab2_b2_1.PNG differ diff --git a/_site/assets/images/lab_images/lab2_b2_2.PNG b/_site/assets/images/lab_images/lab2_b2_2.PNG new file mode 100644 index 0000000..0fb136f Binary files /dev/null and b/_site/assets/images/lab_images/lab2_b2_2.PNG differ diff --git a/_site/assets/images/lab_images/lab3_b1_1.png b/_site/assets/images/lab_images/lab3_b1_1.png new file mode 100644 index 0000000..853177d Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b1_1.png differ diff --git a/_site/assets/images/lab_images/lab3_b1_2.png b/_site/assets/images/lab_images/lab3_b1_2.png new file mode 100644 index 0000000..05c9b4f Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b1_2.png differ diff --git a/_site/assets/images/lab_images/lab3_b1_3.png b/_site/assets/images/lab_images/lab3_b1_3.png new file mode 100644 index 0000000..9765a02 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b1_3.png differ diff --git a/_site/assets/images/lab_images/lab3_b2_1.png b/_site/assets/images/lab_images/lab3_b2_1.png new file mode 100644 index 0000000..2784901 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b2_1.png differ diff --git a/_site/assets/images/lab_images/lab3_b2_2.png b/_site/assets/images/lab_images/lab3_b2_2.png new file mode 100644 index 0000000..5d67803 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b2_2.png differ diff --git a/_site/assets/images/lab_images/lab3_b2_3.png b/_site/assets/images/lab_images/lab3_b2_3.png new file mode 100644 index 0000000..16c3817 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b2_3.png differ diff --git a/_site/assets/images/lab_images/lab3_b3_1.png b/_site/assets/images/lab_images/lab3_b3_1.png new file mode 100644 index 0000000..a9572e9 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b3_1.png differ diff --git a/_site/assets/images/lab_images/lab3_b3_2.png b/_site/assets/images/lab_images/lab3_b3_2.png new file mode 100644 index 0000000..de0b7ad Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b3_2.png differ diff --git a/_site/assets/images/lab_images/lab3_b3_3.png b/_site/assets/images/lab_images/lab3_b3_3.png new file mode 100644 index 0000000..a1f6758 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b3_3.png differ diff --git a/_site/assets/images/lab_images/lab3_b3_4.png b/_site/assets/images/lab_images/lab3_b3_4.png new file mode 100644 index 0000000..537caa8 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b3_4.png differ diff --git a/_site/assets/images/lab_images/lab3_b4_1.png b/_site/assets/images/lab_images/lab3_b4_1.png new file mode 100644 index 0000000..92b6551 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b4_1.png differ diff --git a/_site/assets/images/lab_images/lab3_b4_2.png b/_site/assets/images/lab_images/lab3_b4_2.png new file mode 100644 index 0000000..0dc8a31 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b4_2.png differ diff --git a/_site/assets/images/lab_images/lab3_b4_4.png b/_site/assets/images/lab_images/lab3_b4_4.png new file mode 100644 index 0000000..301ef96 Binary files /dev/null and b/_site/assets/images/lab_images/lab3_b4_4.png differ diff --git a/_site/assets/images/lab_images/random.md b/_site/assets/images/lab_images/random.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/_site/assets/images/lab_images/random.md @@ -0,0 +1 @@ + diff --git a/_site/assets/images/liberty_lauer.jpg b/_site/assets/images/liberty_lauer.jpg new file mode 100644 index 0000000..0508ff1 Binary files /dev/null and b/_site/assets/images/liberty_lauer.jpg differ diff --git a/_site/assets/images/marius_castro.jpeg b/_site/assets/images/marius_castro.jpeg new file mode 100644 index 0000000..beaee66 Binary files /dev/null and b/_site/assets/images/marius_castro.jpeg differ diff --git a/_site/assets/images/p2/P2-Part1Tests.png b/_site/assets/images/p2/P2-Part1Tests.png new file mode 100644 index 0000000..0450294 Binary files /dev/null and b/_site/assets/images/p2/P2-Part1Tests.png differ diff --git a/_site/assets/images/p2/P2-Part2ProTip.png b/_site/assets/images/p2/P2-Part2ProTip.png new file mode 100644 index 0000000..bb295d7 Binary files /dev/null and b/_site/assets/images/p2/P2-Part2ProTip.png differ diff --git a/_site/assets/images/p2/P2-Part2Tests.png b/_site/assets/images/p2/P2-Part2Tests.png new file mode 100644 index 0000000..2af9418 Binary files /dev/null and b/_site/assets/images/p2/P2-Part2Tests.png differ diff --git a/_site/assets/images/p2/P2-Part3ProTip.png b/_site/assets/images/p2/P2-Part3ProTip.png new file mode 100644 index 0000000..621b7df Binary files /dev/null and b/_site/assets/images/p2/P2-Part3ProTip.png differ diff --git a/_site/assets/images/p2/P2-Part3Test.png b/_site/assets/images/p2/P2-Part3Test.png new file mode 100644 index 0000000..bf6d3f3 Binary files /dev/null and b/_site/assets/images/p2/P2-Part3Test.png differ diff --git a/_site/assets/images/p2/P2-Part4Tests.png b/_site/assets/images/p2/P2-Part4Tests.png new file mode 100644 index 0000000..ea662de Binary files /dev/null and b/_site/assets/images/p2/P2-Part4Tests.png differ diff --git a/_site/assets/images/p2/P2-Part5ProTip.png b/_site/assets/images/p2/P2-Part5ProTip.png new file mode 100644 index 0000000..6e924f4 Binary files /dev/null and b/_site/assets/images/p2/P2-Part5ProTip.png differ diff --git a/_site/assets/images/p2/P2-Part5Tests.png b/_site/assets/images/p2/P2-Part5Tests.png new file mode 100644 index 0000000..1953883 Binary files /dev/null and b/_site/assets/images/p2/P2-Part5Tests.png differ diff --git a/_site/assets/images/p2/P2-Part6Tests.png b/_site/assets/images/p2/P2-Part6Tests.png new file mode 100644 index 0000000..63b77be Binary files /dev/null and b/_site/assets/images/p2/P2-Part6Tests.png differ diff --git a/_site/assets/images/p2/P2-Part7Tests.png b/_site/assets/images/p2/P2-Part7Tests.png new file mode 100644 index 0000000..27ef8f3 Binary files /dev/null and b/_site/assets/images/p2/P2-Part7Tests.png differ diff --git a/_site/assets/images/p2/length.png b/_site/assets/images/p2/length.png new file mode 100644 index 0000000..7bf19ad Binary files /dev/null and b/_site/assets/images/p2/length.png differ diff --git a/_site/assets/images/p2/proj2 b/_site/assets/images/p2/proj2 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/_site/assets/images/p2/proj2 @@ -0,0 +1 @@ + diff --git a/_site/assets/images/p2/spellingbee-example.png b/_site/assets/images/p2/spellingbee-example.png new file mode 100644 index 0000000..6e6cde4 Binary files /dev/null and b/_site/assets/images/p2/spellingbee-example.png differ diff --git a/_site/assets/images/p3/p1.png b/_site/assets/images/p3/p1.png new file mode 100644 index 0000000..0787187 Binary files /dev/null and b/_site/assets/images/p3/p1.png differ diff --git a/_site/assets/images/p3/p2.png b/_site/assets/images/p3/p2.png new file mode 100644 index 0000000..f25e11a Binary files /dev/null and b/_site/assets/images/p3/p2.png differ diff --git a/_site/assets/images/p3/p3.png b/_site/assets/images/p3/p3.png new file mode 100644 index 0000000..b1ae6c2 Binary files /dev/null and b/_site/assets/images/p3/p3.png differ diff --git a/_site/assets/images/p3/p4.png b/_site/assets/images/p3/p4.png new file mode 100644 index 0000000..d1af681 Binary files /dev/null and b/_site/assets/images/p3/p4.png differ diff --git a/_site/assets/images/p3/p5.png b/_site/assets/images/p3/p5.png new file mode 100644 index 0000000..d89a8ae Binary files /dev/null and b/_site/assets/images/p3/p5.png differ diff --git a/_site/assets/images/p5/P5-Part1Board.png b/_site/assets/images/p5/P5-Part1Board.png new file mode 100644 index 0000000..ce472e1 Binary files /dev/null and b/_site/assets/images/p5/P5-Part1Board.png differ diff --git a/_site/assets/images/p5/P5-Part2Pytromino.png b/_site/assets/images/p5/P5-Part2Pytromino.png new file mode 100644 index 0000000..42fef77 Binary files /dev/null and b/_site/assets/images/p5/P5-Part2Pytromino.png differ diff --git a/_site/assets/images/p5/P5-Pyturis.png b/_site/assets/images/p5/P5-Pyturis.png new file mode 100644 index 0000000..428e2ed Binary files /dev/null and b/_site/assets/images/p5/P5-Pyturis.png differ diff --git a/_site/assets/images/p5/desc b/_site/assets/images/p5/desc new file mode 100644 index 0000000..7673107 --- /dev/null +++ b/_site/assets/images/p5/desc @@ -0,0 +1 @@ +proj5 images diff --git a/_site/assets/images/p6/p6-1.png b/_site/assets/images/p6/p6-1.png new file mode 100644 index 0000000..22344a0 Binary files /dev/null and b/_site/assets/images/p6/p6-1.png differ diff --git a/_site/assets/images/sufjan_fana.png b/_site/assets/images/sufjan_fana.png new file mode 100644 index 0000000..d9dd623 Binary files /dev/null and b/_site/assets/images/sufjan_fana.png differ diff --git a/_site/assets/images/victoria.png b/_site/assets/images/victoria.png new file mode 100644 index 0000000..1601c1f Binary files /dev/null and b/_site/assets/images/victoria.png differ diff --git a/_site/assets/images/wencao.png b/_site/assets/images/wencao.png new file mode 100644 index 0000000..058bc29 Binary files /dev/null and b/_site/assets/images/wencao.png differ diff --git a/_site/assets/images/wordlelite.png b/_site/assets/images/wordlelite.png new file mode 100644 index 0000000..bc4d277 Binary files /dev/null and b/_site/assets/images/wordlelite.png differ diff --git a/_site/assets/js/just-the-docs.js b/_site/assets/js/just-the-docs.js new file mode 100644 index 0000000..12fe4dd --- /dev/null +++ b/_site/assets/js/just-the-docs.js @@ -0,0 +1,574 @@ +(function (jtd, undefined) { + +// Event handling + +jtd.addEvent = function(el, type, handler) { + if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); +} +jtd.removeEvent = function(el, type, handler) { + if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); +} +jtd.onReady = function(ready) { + // in case the document is already rendered + if (document.readyState!='loading') ready(); + // modern browsers + else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); + // IE <= 8 + else document.attachEvent('onreadystatechange', function(){ + if (document.readyState=='complete') ready(); + }); +} + +// Show/hide mobile menu + +function initNav() { + jtd.addEvent(document, 'click', function(e){ + var target = e.target; + while (target && !(target.classList && target.classList.contains('nav-list-expander'))) { + target = target.parentNode; + } + if (target) { + e.preventDefault(); + target.ariaPressed = target.parentNode.classList.toggle('active'); + } + }); + + const siteNav = document.getElementById('site-nav'); + const mainHeader = document.getElementById('main-header'); + const menuButton = document.getElementById('menu-button'); + + disableHeadStyleSheets(); + + jtd.addEvent(menuButton, 'click', function(e){ + e.preventDefault(); + + if (menuButton.classList.toggle('nav-open')) { + siteNav.classList.add('nav-open'); + mainHeader.classList.add('nav-open'); + menuButton.ariaPressed = true; + } else { + siteNav.classList.remove('nav-open'); + mainHeader.classList.remove('nav-open'); + menuButton.ariaPressed = false; + } + }); +} + +// The element is assumed to include the following stylesheets: +// - a to /assets/css/just-the-docs-head-nav.css, +// with id 'jtd-head-nav-stylesheet' +// - a + + + + + + + + + + + + + + + + +Calendar | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Weekly Calendar (Updated Each Week) + + +

+ + +

If the calendar below appears blank, make sure you’re signed in to your Berkeley email!

+ + +

To add these calendars to your Google Calendar, use (this link)

+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/discussion/index.html b/_site/discussion/index.html new file mode 100644 index 0000000..f454ea2 --- /dev/null +++ b/_site/discussion/index.html @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Discussion | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Discussion + + +

+ + +

This page will be updated with discussion Worksheets and Solutions throughout the semester. Recordings will be released periodically.

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + </tr> + + + + + + </tr> + +
DiscussionTitleWorksheetSolutionsRecordings
Discussion 1Welcome to Snap! Worksheet 1Solutions 1 Recording 1
Discussion 2Number Rep + Control Structures Worksheet 2Solutions 2Recording 2
Discussion 3Domain/Range, Scoping, Lists & HOFsWorksheet 3Solutions 3Recording 3
Discussion 4HOFs + Quest ReviewWorksheet 4Solutions 4Recording 4
Discussion 5AlgorithmsWorksheet 5Solutions 5Recording 5
Discussion 6Recursion IWorksheet 6Solutions 6Recording 6
Discussion 7Recursion IIWorksheet 7Solutions 7Recording 7
Discussion 8Proj 4 Presentations---
Discussion 9Intro to PythonWorksheet 9Solutions 9Recording 9
Discussion 10List Comprehension + DictionariesWorksheet 10Solutions 10Recording 10
Discussion 11OOPWorksheet 11Solutions 11Recording 11
Discussion 12Concurrency + Python HOFsWorksheet 12Solutions 12Recording 12
Discussion 13ReviewWorksheet 13Solutions 13Recording 13
Discussion 14ReviewWorksheet 14Solutions 14Recording 14Discussion 15ReviewWorksheet 15Solutions 15N/A
+ + + + + + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/hw/hw01/index.html b/_site/hw/hw01/index.html new file mode 100644 index 0000000..0e0dd84 --- /dev/null +++ b/_site/hw/hw01/index.html @@ -0,0 +1,443 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +HW 1 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + HW 1: Recursion + + +

+ +
Due at: 2024-06-13 11:59:59 PM PST
+ + +
    +
  1. Q1: Sample Question
  2. +
  3. Q2: Another Question
  4. +
+

+ + + Q1: Sample Question + + +

+ + +

This is a sample question description.

+ +
def sample_question(a, b, c):
+    """
+    >>> another_question(1, 2, 3)
+    6
+    >>> another_question(0, 0, 0)
+    0
+    >>> another_question(3, 0, 0)
+    3
+    """
+    return a + b + c
+ +

Use Ok to test your code:

+ +
python3 ok -q sample_question
+
+

+ + + Q2: Another Question + + +

+ + +

This is another sample question description.

+ +
public class AnotherQuestion {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+        System.out.println("Outside solution");
+    }
+}
+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/index.html b/_site/index.html new file mode 100644 index 0000000..e64783b --- /dev/null +++ b/_site/index.html @@ -0,0 +1,1417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Home | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + CS 10: The Beauty and Joy of Computing + + +

+ +

UC Berkeley, Spring 2025

+ +

A gentle but thorough introduction to computer science.

+ +

Instructor: Teaching Professor Dan Garcia
+Instructor’s OH: Friday 1-2PM @ Soda-777
+Lectures: Monday, Wednesday, Friday 1-2 PM @ Anthropology and Art Practice Building, Room 160
+Labs: Tuesday, Thursday 3-5 @ Soda Hall, Room 438 (The Woz)
+Discussion: Thurs 6-8 PM @ Evans Hall, Room 60
+OH Queue: oh.cs10.org

+ +


+ +
+ +
+ + +

+ + + CS10 Calendar + + +

+ + + + + + +

+ Jump to Current Week +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 1 Mon 8/26
Tue 8/27 Lec 1. Logistics + Abstraction
+ (Recording 1)
+ (Slides 1)
+ (Lecture Quiz 1) +
Presemester Survey Released
Due (08/30)
Wed 8/28 Lec 2. Functions + Conditional Logic
+ (Recording 2)
+ (Slides 2)
+ (Lecture Quiz 2) +
Lab 1. Welcome to Snap!
Thu 8/29 Disc 1. Welcome to Snap!
Fri 8/30
+ +


+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 2 Mon 9/2 NO CLASS (Holiday)
Tue 9/3 Proj 1: Worldle Released
Due (9/12)
Wed 9/4 Lec 3. Numbers + Abstraction
+ (Recording 3)
+ (Slides 3)
+ (Lecture Quiz 3) +
Lab 2. Build Your Own Blocks
Thu 9/5 Disc 2. Number Rep + Conditionals Reading: Week 2 Due
Fri 9/6
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 3 Mon 9/9 Lec 4. List, Scope, + HOFs
+ (Recording 4)
+ (Slides 4)
+ (Lecture Quiz 4)
Lab 3. Conditionals, Reporters, Testing
Tue 9/10 Proj 1: Worldle Due
Wed 9/11 Lec 5. Algorithms
+ (Recording 5)
+ (Slides 5)
+ (Lecture Quiz 5) +
Lab 4. Lists + HOFs
Thu 9/12 Disc 3. Data-types, Domain / Range, Scoping, Lists Reading: Week 3 Due
+ Proj 2: Worldle Released (due 9/26)
Fri 9/13
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 4 Mon 9/16 Lec 6. Algorithmic Complexity
+ (Recording 6)
+ (Slides 6)
+ (Lecture Quiz 6)
Lab 5. Algorithms
Tue 9/10
Wed 9/18 Lec 7. Quest Review
+ (Recording 7)
+ (Lecture Quiz 7) +
Lab 6. Algorithmic Complexity
Thu 9/19 Disc 4. HOFs + Quest Review Reading: Week 4 Due
Fri 9/20 Quest (from Sat to Sun)
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 5 Mon 9/23 Lec 8. Testing + 2048
+ (Recording 8)
+ (Slides 8)
+ (Lecture Quiz 8)
Lab 7. Testing + Proj 3
Tue 9/24
Wed 9/25 Lec 9. Social Implications of Computing: Computers in Education
+ (Recording 9)
+ (Slides 9)
+ (Lecture Quiz 9) +
No Lab Assignment:
Project Party 2 during lab
Thu 9/26 Disc 5. Algorithms Reading: Week 5 Due
+ Proj 2 Due
+
Fri 9/27 Quest Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 6 Mon 9/30 Lec 10. Recursion I (Functional)
+ (Recording 10)
+ (Slides 10)
+ (Lecture Quiz 10)
Lab 8. Boards
Tue 10/1 Proj 3 Released (due 10/10)
Wed 10/2 Lec 11. Recursion II (Fractals)
+ (Recording 11)
+ (Slides 11)
+ (Lecture Quiz 11)
+ (Recursion Code) +
Lab 9. Trees & Fractals
Thu 10/3 Disc 6. Recursion Reading: Week 6 Due
Fri 10/4 Quest Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 7 Mon 10/7 Lec 12. Dr. Kathy Yelick - Saving the World with Computing
+ (Recording 12)
+ (Slides 12)
+ (Lecture Quiz 12)
Proj 3 Party (no new lab)
Tue 10/8
Wed 10/9 Lec 13. Tree Recursion (Count Change)
+ (Recording 13)
+ (Slides 13)
+ (Lecture Quiz 13)
+ (Tree Recursion Code) +
Lab 10: Recursive Reporters
Thu 10/10 Disc 7. Tree Recursion Reading: Week 7 Due
+ Proj 3 Due
+ Project 4 Released (due 10/16)
Fri 10/10 Quest Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 8 Mon 10/14 Lec 14. Higher-Order Functions
+ (Recording 14)
+ (Slides 14)
+ (Lecture Quiz 14)
Lab 11: HOFs and Functions as Data
Tue 10/15
Wed 10/16 Lec 15. Programming Paradigms
+ (Recording 15)
+ (Slides 15)
+ (Lecture Quiz 15) + (Lec 15. Code) +
Midterm Review + Practice Midterm
+ Practice Midterm
+ Practice Fractal
Proj 4 Due
Thu 10/17 Disc 8. Proj 4 Presentations Reading: Week 8 Due
Fri 10/18 Midterm
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 9 Mon 10/21 Lec 16. Intro to Python
+ (Recording 16)
+ (Slides 16)
+ (Lecture Quiz 16)
Lab 12. Welcome to Python
Tue 10/22
Wed 10/23 Lec 17. Data Types & Structures (Python II)
+ (Recording 17)
+ (Slides 17)
+ (Lecture Quiz 17) +
Lab 13. Data Structures in Python Final Proj Released
Thu 10/24 Disc 9. Intro to Python Reading: Week 9 Due
Fri 10/25 Midterm Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 10 Mon 10/28 Lec 18. Linear Recursion (Python III)
+ (Recording 18)
+ (Slides 18)
+ (Lecture Quiz 18)
Lab 14. Linear Recursion
Tue 10/29
Wed 10/30 Lec 19. Tree Recursion & Game Theory (Python IV)
+ (Recording 19)
+ (Slides 19)
+ (Lecture Quiz 19) +
Lab 15. Tree Recursion Final Proj Prosposal Due
Thu 10/31 Disc 10. List Comprehension + Dictionaries Reading: Week 10 Due
Fri 11/1 Midterm Retake
+ Proj 5: Pyturis released
+ (due 11/14)
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 11 Mon 11/4 Lec 20. OOP (Python V)
+ (Recording 20)
+ (Slides 20)
+ (Demo Code)
+ (Lecture Quiz 20)
Lab 16. OOP in Python Proj 6: Final Project
Tue 11/5
Wed 11/6 Lec 21. HOFs in Python (Python VI)
+ (Recording 21)
+ (Slides 21)
+ (Lecture Quiz 21) +
Lab 17. Text Processing in Python
Thu 11/7 Disc 11: OOP + Python HOFs Proj 6: Final Project (due 12/6)
+ Reading: Week 11 Due
Fri 11/8 Midterm Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 12 Mon 11/11 NO CLASS (Holiday)
Tue 11/12 Proj 5 Due
Wed 11/13 Lec 22. Concurrency + Parallelism
+ (Recording 22)
+ (Slides 22)
+ (Lecture Quiz 22) +
Lab 18. Concurrency + Parallelism
Thu 11/14 Disc 12: Concurrency + Review Reading: Week 12 Due
Fri 11/15 Postterm
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 13 Mon 11/18 Lec 23. Generative AI
+ (Recording 23)
+ (Slides 23)
+ (Lecture Quiz 23)
Catch Up + PostTerm Practice (No New Lab)
Tue 11/19
Wed 11/20 Lec 24. Ethics in AI
+ (Recording 24)
+ (Slides 24)
+ (Lecture Quiz 24) +
Lab 20. Data Science
Thu 11/21 Disc 13: Review Reading: Week 13 Due
Fri 11/22 Postterm Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 14 Mon 11/25 Lec 25. Human-computer Interaction (HCI) - Guest
+ (Recording 25)
+ (Slides 25)
+ (Lecture Quiz 25)
Final Proj Party
Tue 11/26
Wed 11/27 NO CLASS (Holiday)
Thu 11/28 NO CLASS (Holiday)
Fri 11/29 NO CLASS (Holiday)
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 15 Mon 12/2 Lec 26. Alumni Panel
+ (Recording 26)
+ (Slides 26)
+ (Lecture Quiz 26)
Final Proj Party
Tue 12/3
Wed 12/4 Lec 27. Conclusion + Farewell
+ (Recording 27)
+ (Slides 27)
+ (Lecture Quiz 27)
Practice Postterm
Thu 12/5 Disc 14: Review Reading: Week 15 Due
Fri 12/6 Final Proj Due
+ Postterm Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 16 Mon 12/9 NO CLASS (RRR Week)Postterm Retake
Tue 12/10 NO CLASS (RRR Week)Postterm Retake
Wed 12/11 NO CLASS (RRR Week)Postterm Retake
Thu 12/12 NO CLASS (RRR Week)Postterm Retake
Fri 12/13 NO CLASS (RRR Week)Postterm Retake
+ +


+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 17 Mon 12/16 NO CLASS (Finals Week)Postterm Retake
Tue 12/17 NO CLASS (Finals Week)Postterm Retake
Wed 12/18 NO CLASS (Finals Week)Postterm Retake
Thu 12/19 NO CLASS (Finals Week)Postterm Retake
Fri 12/20 NO CLASS (Finals Week)Postterm Retake
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/lab_directory/index.html b/_site/lab_directory/index.html new file mode 100644 index 0000000..95818c3 --- /dev/null +++ b/_site/lab_directory/index.html @@ -0,0 +1,489 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Labs | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Labs + + +

+ + +

Lab Slides: Folder or can be accessed using https://tinyurl.com/cs10-labs

+ +
+

Labs are an opportunity for you to apply what you’ve learned in lecture in code (and other forms) All labs have a conceptual and a coding component. All labs assignments must be uploaded and autograded using Gradescope; the Gradescope link can be found on the worksheet.

+
+ +
+

The worksheeks linked below are high-level overviews and can be seen as a set of instructions for lab. Each worksheet lists all the required blocks, functions, or tasks for a particular lab. The worksheets also contain some of the test cases used to grade the lab.

+
+ +
+

The workbook, which differs from the worksheet, is used as a step-by-step guide to complete each lab. Lab worksheets will be released at 5:00 PM on the lab day.

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabsSubmission Deadline
Lab 1: Welcome to Snap!WED 9/04
Lab 2: Build Your Own BlockMON 9/09
Lab 3: Conditionals, Reporters, TestingWED 9/11
Lab 4. Lists + HOFsMON 9/16
Lab 5. AlgorithmsWED 9/18
Lab 6. Algorithmic ComplexityMON 9/23
Lab 7.Testing + Proj 3WED 9/25
Lab 8. BoardsWED 10/2
Lab 9. Trees + RecursionWED 10/9
Lab 10. Linear RecursionMON 10/14
Lab 11: HOFs and Functions as DataMON 10/21
Lab 12: Welcome to PythonWED 10/23
Lab 13: Data Structures MON 10/28
Lab 14: Linear Recursion WED 10/30
Lab 15: Tree Recursion MON 11/4
Lab 16: Object Oriented Programming WED 11/6
Lab 17: Text ProcessingWED 11/13
Lab 18: Concurrency and ParallelismMON 11/18
Lab 19: Data ScienceWED 11/25
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/labs/lab01/index.html b/_site/labs/lab01/index.html new file mode 100644 index 0000000..b486c49 --- /dev/null +++ b/_site/labs/lab01/index.html @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Lab 1 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Lab 1: Control and Functions + + +

+ +
Due at: 2024-06-13 11:59:59 PM PST
+ + +
    +
  1. Q1: Sample Question
  2. +
  3. Q2: Another Question
  4. +
+

+ + + Q1: Sample Question + + +

+ + +

This is a sample question description.

+ +
def sample_question(a, b, c):
+    """
+    >>> another_question(1, 2, 3)
+    6
+    >>> another_question(0, 0, 0)
+    0
+    >>> another_question(3, 0, 0)
+    3
+    """
+    return a + b + c
+ +

Use Ok to test your code:

+ +
python3 ok -q sample_question
+
+

+ + + Q2: Another Question + + +

+ + +

This is another sample question description.

+ +
public class AnotherQuestion {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+        System.out.println("Outside solution");
+    }
+}
+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/labs/lab2.md b/_site/labs/lab2.md new file mode 100644 index 0000000..e69de29 diff --git a/_site/projects/index.html b/_site/projects/index.html new file mode 100644 index 0000000..3fdd524 --- /dev/null +++ b/_site/projects/index.html @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Projects | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Projects + + +

+ + +
+

This page will be updated with CS10’s project specifications (specs) and walkthroughs. Recordings, if avaiable, will also be updated here.

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title + Spec LinkWalkthroughRelease DateDue Date
Project 1: Wordle™-liteProj 1 Walkthrough SlidesTuesday, 9/3Thursday, 9/12
Project 2: Spelling BeeProj 2 Walkthrough SlidesSunday, 9/15Thursday, 9/26
Project 3: 2048Proj 3 Walkthrough SlidesTuesday, 10/1Thursday, 10/10
Extended to 10/22
Project 4: Tech in Context-Thursday, 10/10Wednesday, 10/16
Project 5: Pyturis-Friday, 11/1Thursday, 11/14
Project 6: Proposals-Friday, 10/25Wednesday, 10/30
Project 6: Final Project-Monday, 11/4 (earliest)
Only start once your project has been approved
Friday, 12/6
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/proj01/index.html b/_site/projects/proj01/index.html new file mode 100644 index 0000000..739f06a --- /dev/null +++ b/_site/projects/proj01/index.html @@ -0,0 +1,443 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 1 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 1: Ants vs. Some Bees + + +

+ +
Due at: 2024-06-13 11:59:59 PM PST
+ + +
    +
  1. Q1: Sample Question
  2. +
  3. Q2: Another Question
  4. +
+

+ + + Q1: Sample Question + + +

+ + +

This is a sample question description.

+ +
def sample_question(a, b, c):
+    """
+    >>> another_question(1, 2, 3)
+    6
+    >>> another_question(0, 0, 0)
+    0
+    >>> another_question(3, 0, 0)
+    3
+    """
+    return a + b + c
+ +

Use Ok to test your code:

+ +
python3 ok -q sample_question
+
+

+ + + Q2: Another Question + + +

+ + +

This is another sample question description.

+ +
public class AnotherQuestion {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+        System.out.println("Outside solution");
+    }
+}
+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/project1/index.html b/_site/projects/project1/index.html new file mode 100644 index 0000000..c691da1 --- /dev/null +++ b/_site/projects/project1/index.html @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 1 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 1: Wordle™-lite + + +

+ +
Due at: 11:59 PM PST on Thursday, 9/12
+ + +

Version 3.0. Last Updated: 2024-09-08.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +
+

Any important updates or clarifications will be made here

+
+

+ + + To begin, load this starter project + + +

+ + +

Project 1 Walkthrough Guide.pdf

+

+ + + Content + + +

+ + +

I. Introduction
+II. Part 1: “game over” Block
+III. Part 2: “matching slots” Block
+IV. Part 3: “update score” Block
+V. Rubric
+VI. Feedback Form

+

+ + + Submission Guidelines + + +

+ + +
    +
  • Review the guidelines here to learn how to export your projects and turn them in.
  • +
  • Make sure to click “Add Group Member” in the top-right corner of the screen and add your partner!
  • +
  • Your final score out of 10 on this project is your score on Gradescope.
  • +
  • Once submitted, finish Project 1 Feedback Form
  • +
+

+ + + Preface + + +

+ + +

Do remember that while you may discuss general ideas with other students, sharing code with anyone but your partner would be academically dishonest.

+ +

Important: Ensure that you use the starter file we’ve linked below- do NOT create your own Snap! file for this project!

+ +

Note: The Project Feedback Form will ask about how long you took at each part of the project. Please keep track of your time frame as you work through the project. For example, if you work for 30 minutes on Thursday, then 40 minutes on Saturday for part 2, you spend 1 hour and 10 minutes total on part 2.

+

+ + + Introductions + + +

+ + +

In this project, you are required to work with one (and only one) partner (and with assistance from course staff as needed) to finish three blocks in an existing program to play Wordle™-lite, a word-guessing game designed for two human players.

+ +

In the game, the first player (Player 1) will enter a secret code, and the second player (Player 2) will try to guess that code. Player 2 starts with 100 points, and every wrong guess costs them 10 points, but they earn back the number of letters that match perfectly in the same place in both words (in Wordle™ this would be the green letters). This back-and-forth will continue until Player 2 successfully guesses the secret code or the score is not positive, and the game ends.

+ +

Here is an example of the game being played (make sure to resize HISTORY to see it better):

+ +
+

Program: Welcome to Wordle™-lite, a word guessing game. Ready player one: enter a secret word...
+Player 1: love
+Program: Ready player two: time to guess the secret word; you start with a score of 100 (wrong guesses cost you 10 but each matched letter earns back 1); the game ends when you guess the word or the score gets to 0. What is your guess? (hint: it’s a 4-letter word)
+Player 2: like
+Program: Player two: your guess of “like” matched l--e; your score is now 92. What is your guess? (hint: it’s a 4 letter word)
+Player 2: lose
+Program: Player two: your guess of “lose” matched lo-e; your score is now 85. What is your guess? (hint: it’s a 4 letter word)
+Player 2: love
+Program: “love” is correct, great job! Final score: 85/100

+
+ +

Example of Wordlite testcase described above, with person infront of Wheeler hall

+ +

Some notes – nothing in our code prevents either Player 1 or Player 2 from typing a gibberish word. We would hope Player 1 doesn’t do that, since the game is almost impossible if the secret word is a set of random letters. However, one strategy that Player 2 might employ (and this game allows it, making it easier than the actual Wordle™ game) is to type a word (say) of all e’s to see where the e’s are in the word. Also, the guesses Player 2 enters aren’t checked to see if they’re the same length as the secret word. When the guessed word is longer, we only look at the first N slots of the guess (where N is the length of the secret word). When the guessed word is shorter, it just shows the letters that weren’t guessed as missed “-” letters.

+ +

If you’re having trouble, please contact the course staff for assistance — Ed, Office Hours, and Labs are all here to help you feel good about the work you’re doing! If you can’t make the times, tell us, and we’ll figure out how you can still get support. But, we won’t know when or how to help unless you let us know.

+

+ + + Part 1: <game over? guess:[] secret: [] score: ()> Block + + +

+ + +

First, you’ll build a predicate block (aka the “game over” block) that will know when the game is over. This should report True if the guess equals the secret or if the score is not positive, and False otherwise. Here are some examples:

+ +

Testcases for Part 1 Block

+

+ + + Part 2: (matching “green” slots between guess: [ ] and secret: []) Block + + +

+ + +

Next, you’ll build a reporter block (aka the “matching slots” block) that can tell a player how close they are to guessing the secret code by indicating the correct “slots”. Capitalization should not matter (i.e., the game should read r and R as the same), but thanks to the way Snap! implemented its “=” block, you don’t have to worry about making a special case, just using “=” will treat lowercase r and uppercase R the same!

+ +

Given two inputs, a guess and a secret code, the matching slots block should report a word of letters or dashes to indicate the matching slots between guess and secret, the same length as secret, in which every matched letter is the letter itself, and any missed letter is a dash. Here are some examples to make this clear:

+ +

Testcases for Part 2 Block

+

+ + + Part 3: (update score based on matched slots: [] and score: ()) Block + + +

+ + +

Finally, you’ll build a reporter block (aka the “update score” block) that will take the result of the matched slots and the old score and report an updated score based on the old score minus 10 (cost for a guess) plus the number of slots that matched (were not “-”). Here are some examples to make this clear:

+ +

Testcases for Part 3 Block

+

+ + + Rubric + + +

+ +

You have three blocks to write and five tests (shown above) for each block, according to the following table. So a perfect score would earn (5 × 0.4) + (5 × 0.8) + (5 × 0.8) = 10 points. Gradescope’s autograder needs the number between 0 and 1, so we divide that score by 10 to send to the autograder. You should continue to work on your code until all test cases pass and the score reported by says: {“score”: 1} +If at any point you’d like to see more details about how we calculate that out-of-10 score, you can run the block we provide, a, the expected value, the actual value, how many points it is worth, and how many points you’ve earned. The sum of all the earned points is tallied in the bottom-right cell. +Note: correct, working code should handle those test cases, but not have the test cases hardcoded into your solution, they should be able to handle any inputs according to the specifications.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
BlockPointsNumber of Tests
<game over? guess:[] secret: [] score: ()>0.45
(matching “green” slots between guess: [ ] and secret: [])0.85
(update score based on matched slots: [] and score: ())0.85
+

+ + + Feedback Form + + +

+ +

Congratulations on finishing your first project in CS10🥳. Please spend some time completing this feedback form. This will be worth 1 point of your project grade.

+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/project2/index.html b/_site/projects/project2/index.html new file mode 100644 index 0000000..d04a34f --- /dev/null +++ b/_site/projects/project2/index.html @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 2 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 2: Spelling Bee + + +

+ +
Due at: 11:59 PM PST on Thursday, 9/26
+ + +

Version 3.0. Last Updated: 2024-09-15.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +

Project walkthrough guide.pdf

+

+ + + To begin, load this starter project + + +

+ + +
+

Any important updates or clarifications will be made here.

+
+

+ + + Content + + +

+ + +

I. Submission Guidelines
+II. Preface
+III. Introduction
+IV. Part 1: “letter” Block +V. Part 2: “has letter” Block
+VI. Part 3: “uppercase” Block
+VII. Part 4: “lowercase” Block
+VIII. Part 5: “has only” Block
+IX. Part 6: “pangram” Block
+X. Part 7: “solution” Block
+XI. Rubric
+XII. Feedback Form

+

+ + + Submission Guidelines + + +

+ + +
    +
  • Review the guidelines to learn how to export your projects and turn them in.
  • +
  • Make sure to click “Add Group Member” in the top-right corner of the screen and add your partner!
  • +
  • Your final score out of X on this project is your score on Gradescope.
  • +
  • Once submitted, finish Project 2 Feedback Form
  • +
+

+ + + Preface + + +

+ + +

Do remember that while you may discuss general ideas with other students, sharing code with anyone but your partner would be academically dishonest.

+ +

Important: Ensure that you use the starter file we’ve linked above- do NOT create your own Snap! file for this project!

+ +

You are NOT allowed to use explicit iteration (i.e. create for loops / repeat until loops) or recursion (which you’ll learn soon) in this project. Instead, you should rely on HOFs: specifically, map, keep, and combine. You are also not allowed to import any blocks.

Also, you may NOT use the built-in lowercase or uppercase blocks shown below:

Length of text snap block with uppercase/lowercase options

You are allowed to use length of text.

+

+ + + Introduction + + +

+ + +

In this project, you will need to collaborate with a partner to complete seven blocks in an existing program for Spelling Bee, a popular one-player word-guessing game. The blocks range in difficulty, with the first two being relatively easy, the middle two medium, and the last three more challenging.

+ +

In the game, the computer takes about ten seconds to generate (and solve) a hexagonally-shaped word puzzle composed of seven letters, with the center one depicted in yellow and six others on the outside. A reference photo of this puzzle display can be seen below:

+ +

Example of the hexagonally-shaped puzzle, with the center one 'D', and six others'R, E, C, H, N, W'

+ +

To play the game, you need to create words using only the seven letters provided, and every word must include the middle letter to be considered valid. After typing your guess, press the “Return” (or “Enter”) key to submit it. Your guess will be added to the list of correct guesses if it meets the following criteria: it includes the middle letter, uses only the seven letters from the puzzle, is in the wordlist WORDS, and has not been guessed before.

+ +

A word that contains ALL the letters of the puzzle is called a PANGRAM and is shown in UPPERCASE. Each puzzle contains at least one pangram. In the original game, only words of four letters or more are allowed, so we already removed words of three letters or fewer from the WORDS list.

+ +

If you make a mistake, press the “Delete” (or “Backspace”) key to fix or edit your entry. To shuffle the outside letters, hit the spacebar. To see the answers at any point, press the “Option” (or “Alt”) key. To start a new puzzle, click the green “lightning bolt” button at the top right. The program is automatically set to “Turbo Mode” for faster play. If it’s off (green flag instead of lightning bolt), manually turn it back on in Settings.

+ +

We strongly encourage you to play this game on the NY Times Spelling Bee site to get a feel for it. It’s super addictive, but sadly, you can only play once a day for free. If you want to play multiple times in one sitting, use this link instead. But the best part is that we are going to build an exact replica of this in Snap! that you can play and show to your friends!

+ +

If you’re having trouble, please contact the course staff for assistance — Ed, Office Hours, and Project Parties- are all here to help you feel good about the work you’re doing, or get you unstuck!

+

+ + + Part 1: <Letter []> Block + + +

+ + +

First, you’ll build a predicate block (aka the “letter” block) that should report True iff (if and only if) the input is a single-character letter a-z or A-Z, and False if it is not. E.g.,

+ +

Testcases for Part 1 Block

+

+ + + Part 2: < [] has letter [] > Block + + +

+ + +

Next, you’ll build a predicate (aka the “has letter” block) that should report True iff the first input (a word) contains the letter. E.g.,

+ +

Testcases for Part 2 Block

+ +

For this block, you may assume that both inputs will always utilize uppercase letters.

+ +
+

Pro Tip: We found the following blocks extremely useful:
+Two Snap! Blocks, Split [] by [] and <list contains[]>

+
+

+ + + Part 3: (uppercase word []) Block + + +

+ + +

Next, you’ll build a reporter (aka the “uppercase” block) that should report all the letters of its input (assumed to be a-zA-Z) in uppercase. E.g.,

+ +

Testcases for Part 3 Block

+ +

Reminder: You may NOT use the built-in lowercase or uppercase blocks shown below:
+ Length of text snap block with uppercase/lowercase options

+ +

The intention is to learn how to implement these blocks yourself. You are however, allowed to use length of text.

+ +
+

Pro Tip: We found these blocks extremely helpful
+ Snap Blocks: `split [] by []`, `unicode () as letter`, `unicode of []`

+
+

+ + + Part 4: (lowercase word []) Block + + +

+ + +

Next, you’ll build a reporter (aka the “lowercase” block) that should report all the letters of its input (assumed to be a-z and A-Z) in lowercase. E.g.,

+ +

Testcases for Part 4 Block

+ +
+

See same reminder and Pro Tip above

+
+

+ + + Part 5: < [] has only these letters [] > Block + + +

+ + +

Next, you’ll build a predicate (aka the “has only” block) that should report True iff the first input word is comprised only of the letters given, and False otherwise. You may assume the letters are all unique. E.g.,

+ +

Testcases for Part 5 Block

+ +

For this block, you may assume that both inputs will always utilize uppercase letters.

+ +
+

Pro Tip: We found the following blocks extremely useful:
+Three Snap! Blocks, <list contains[]>, is [list] empty, and Split [] by []

+
+

+ + + Part 6: < [] is a pangram using all letters [] > Block + + +

+ + +

Next, you’ll build a predicate (aka the “pangram” block) that should report True iff the first input word uses all of the letters given, and otherwise. It’s ok if the first word contains letters not in the letters parameter, as in the fourth example. You may assume the letters are all unique. E.g.,

+ +

Testcases for Part 6 Block

+ +

For this block, you may assume that both inputs will always utilize uppercase letters.

+ +
+

Pro Tip: We found the following blocks extremely useful:
+Three Snap! Blocks, <list contains[]>, is [list] empty, and Split [] by []

+
+

+ + + Part 7: complete solution to puzzle () using words [] Block + + +

+ + +

Next, you’ll build a reporter (aka the “solution” block) that reports the solution to the Spelling Bee puzzle given the word list. The solution is a list of words, where each word has two properties: (1) it contains the first letter of the puzzle (how we store the “center” word), (2) it only includes the letters of the puzzle. All pangrams (words that use all the letters of the puzzle) are listed in UPPERCASE. There are no limits to the number of letters in the puzzle or the number of letters in the words in the list. For the autograder to work, the words need to stay in the same order as the original word list.

+ +

Testcases for Part 7 Block

+

+ + + Rubric + + +

+ +

You have seven blocks to write, and they will be scored according to the following table; a perfect score would earn 25 points. Note that for a particular block, the test cases may have different weights. PrairieLearn’s autograder needs the number between 0 and 1, so we divided the total score by 25 to send to the autograder. You should continue to work on your code until all test cases pass and the score reported by says: {“score”: 25}. +If at any point you’d like to see more details about how we calculate that out-of-25 score, you can run the block we provide, which reports a nicely-formatted table (with headers) showing every test case, the expected value, the actual value, how many points it is worth, and how many points you’ve earned. The sum of all the earned points is tallied in the bottom-right cell. +Note: correct, working code should handle those test cases, but not have the test cases hardcoded into your solution; they should be able to handle any inputs according to the specifications.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BlockPointsFunction TypeInputsOutputs
letter _1Predicatestringboolean
_ has letter _1Predicatestringsboolean
uppercase word _2Reporterstringstring
lowercase word _2Reporterstringstring
_ has only these letters _5Predicatestringsboolean
_ is a pangram using all letters _6.5Predicatestringsboolean
complete solution to puzzle _ using words _7.5Reporterlist and stringstring
+

+ + + Feedback Form + + +

+ +

Congratulations on finish your first project in CS10🥳. Please spend some time completing this feedback form. This will be worth 1 point of your project grade. Thank you!

+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/project3/index.html b/_site/projects/project3/index.html new file mode 100644 index 0000000..d666f7e --- /dev/null +++ b/_site/projects/project3/index.html @@ -0,0 +1,774 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 3 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 3: 2048 + + +

+ +
Due at: 11:59 PM PST on Thursday, 10/10
+ + +

Version 3.1. Last Updated: 2024-10-10.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +

We also recommend you complete all labs up to and including Lab 8: Boards

+ +

Project walkthrough guide.pdf

+

+ + + To begin, load this starter project + + +

+ + +
+

Any important updates or clarifications will be made here:

+
+ +
+
+

Due Date Extended to Tuesday, 10/22

+
+
+ +
+
+

Project 3 Party: Thursday, 10/10 from 5 - 7PM in Soda 326

+
+
+ +
+
+

Project 3 Party: Monday, 10/7 from 5 - 7PM in Moffit 145

+
+
+ +
+
+

Guide to help with Testing Blocks

+
+
+

+ + + Content + + +

+ + +

I. Introduction +II. Helper Blocks
+III. Suggestions
+IV. Part 1: Populating the Board
+V. Part 2: Rotating the Board
+VI. Part 3: Merging
+VII. Part 4: Ending the Game
+VIII. Part 5: Tests
+IX. Feedback Form
+X. Grading

+

+ + + Submission Guidelines + + +

+ + +

Please submit on Gradescope using these submission instructions, and make sure to add your partner!

+

+ + + Introduction + + +

+ + +

In this project, you’ll be working off some skeleton code to build 2048! If you’re unfamiliar, 2048 +is a sliding puzzle game where the goal is to combine same-valued tiles to reach the value 2048. +You can play the game at this link for free to get used to how it works. +You won’t be building the game from scratch, just filling out five blocks. All of those blocks will +be reporters, and should not update the board display — that’s handled for you in the skeleton code. +So make sure not to mutate the original board. Once you’ve completed those five block definitions, +you won’t need to change anything else about the code; it should work!

+ +

Example of the 2048 game board

+ +

In a nutshell, the game works like this:

+ +
    +
  • The starting board contains two tiles with values of 2 or 4.
  • +
  • When the player hits an arrow key, all tiles on the board “merge” in that direction.
  • +
  • After each merge, a random tile of value 2 or 4 is added to the screen.
  • +
  • The game ends when there are no merges left. You “win” if a tile reads “2048” or more!
  • +
+ +

The board representation in this version of 2048 is abstracted away (we call that an “abstract data type”), +but you can picture it as a table that looks like the picture on the right, containing only 0 and powers of +2 greater than or equal to 2 (e.g., 2, 4, 8, 16, etc). Do not assume that boards are always 4x4 – all the +code we give you as well as the code you write should be able to work with any size square board!

+ +

Note: Make sure to run your game in Turbo Mode for best response time results. To turn on Turbo Mode, +check the “Turbo Mode” box in the gear icon menu. The green starting flag will change to a lightning bolt +(as shown).

+ +

This project must be completed with a partner. If you’re having trouble finding one, head to the Partner-Finding +thread on Ed! Do remember that while you may discuss general ideas with students you aren’t partners with, +sharing code would be academically dishonest. If you’re having trouble, please contact the course staff for +assistance —Ed, Office hours, labs, and the project party are all here to help you feel good about the work +you’re doing! If you can’t make the times, tell us, and we’ll figure out how you can still get support. But +we won’t know when or how to help unless you let us know!

+ +

Note: You can import blocks from libraries

+

+ + + Helper Blocks + + +

+ + +

Diagram of the rows and columns from the board

+ +

You will not need to know how we represent a board in this game — we have provided the following nine helper blocks for you to use to interface with our board implementation. The Power of Abstraction! With this in mind, please make sure not to modify the input board in any of the blocks you write! In addition, please use these blocks, rather than coming up with your own. Also keep in mind that you generally want to abstract as much as possible, meaning you should not use global variables within blocks. We created all custom blocks (including the five you will fill out) so that any information you’ll need will be passed into the block as input.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BlockInputOutputDescription
new board sizeside length (number) - desired length of one side of the boardan empty side length x side length square boardUse this block rather than the ‘new 4x4 board with values ___…’ block from the testing lab. That block should be used only for testing, per the name of the lab
size of boardboard - a 2048 game board at some point in the gamethe length of one side of the input board–
item ofrow (number), column (number), board (a 2048 game board)the value (number) at row, column on the board–
set item ofrow (number), column (number), board (a 2048 game board), value (number) - a value to be inserted into board at row, columnnone, this is a command blockUse this block to set a particular square on the board to a particular value
copy ofboard - a 2048 game board at some point in the gamea separate board with all the same values as the input boardUse this block to build boards that need to have/start with the same values/game state as another board. Updating the copy will not update the input board
empty positions ofboard - a 2048 game board at some point in the gamea list of lists where each sublist contains the row and column of an empty position–
rotated row for, for sizerow (number), column (number), size (number) - the side length of the board you’d like to rotate withinthe row number of the resulting location of this itemThis block does not actually rotate any part of the board. It only returns the row that the input coordinates (row, column) would end up in if the board was rotated 90 degrees clockwise. Here is a visual example
rotated col for, for sizerow (number), column (number), size (number) - the side length of the board you’d like to rotate withinthe column number of the resulting location of this itemThis block does not actually rotate any part of the board. It only returns the column that the input coordinates (row, column) would end up in if the board was rotated 90 degrees clockwise. Here is a visual example
update display forboard - a 2048 game board at some point in the gamenone, this is a command blockThis block updates the stage to display the input board, and sets (game board). This will help you mainly in testing, but should not be used in your game code
+ +

We encourage you to play around with these blocks (input different values and see what the output is) to better understand what they do and how they work — you can also go into each block and look at the code. This will help you when using these blocks in the rest of the project. Just be sure not to change what is inside each of them.

+

+ + + Suggestions + + +

+ + +

Parts 3 and 4 will take a significant amount of your time spent on the project. We recommend managing your time to accommodate for the influx of difficulty on the latter half of project 3. A good mental checkpoint is to have part 2 done by Friday. These are merely suggestions based on the experience of students from previous semesters.

+

+ + + Part 1: Populating the Board + + +

+ + +

In this section of the project, you should fill out the ‘add 2 or 4 to _’ block. The value 2 should have a 75% chance of being added, and the value 4 should have a 25% chance. These values should be added to a randomly-selected empty space on the board.

+ +

Input: board - a 2048 game board with at least one empty space
+Output: a copy of board with an added value at a random location

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a new copy of the board, and should not update the existing board. Updating the existing board is done for you in the provided game code.

+ +

Hint: Stuck? Check out some of the existing blocks in Snap! How will you find where to insert the value in the board? Are there any blocks we provide that could help?

+

+ + + Part 2: Rotating the Board + + +

+ + +

In this part, you should fill out the ‘rotate _ clockwise’ block, which takes in a board and returns a copy of the board that is the result of rotating the input board 90 degrees clockwise. (You will lose points if you rotate anti-clockwise.)

+ +

Input: board - a 2048 game board with at least one empty space
+Output: a copy of board that has been rotated 90 degrees clockwise

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a new copy of the board, and should not update the existing board. Updating the existing board is done for you in the provided game code.

+ +

Hint: Take a look at the ‘rotated row’, ‘rotated column’, ‘size of board’, and ‘copy of’ blocks if you’re not sure how to do something! In particular, the ‘copy of’ block will let you duplicate the contents of a board and then update it separately from the original.

+

+ + + Part 3: Merging + + +

+ + +

In this section of the project, you’ll be filling out two blocks: ‘merge column _ of _ up’ and ‘merge up _’. It is highly recommended that you make helper blocks as part of your implementation of ‘merge column _ of _ up’. Note that you can create helper blocks by right clicking in the scripting area and selecting “make a block…”

+ +

This article breaks down the components of merging a single column, which you should mimic with your implementation. Also, make sure that you’re maintaining the abstraction provided by ‘merge column __ of __ up’ when you build ‘merge up __’ which is to say try to use ‘merge column __ of __ up’ while coding up ‘merge up __’.

+ +

‘merge column __ of __ up’ +Input: col (number, 1 is the leftmost column), board - a 2048 game board +Output: a copy of the board in which column col has been completely merged up

+ +

‘merge up’ +Input: board - a 2048 game board at some point in the game +Output: a copy of board in which all columns have been merged up

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a new version of the board, and should not update the existing board. Updating the existing board is done for you in the provided game code. +Note that we only need one block that merges upward (rather than four blocks that each merge left, right, up, down) because we have the ‘rotate clockwise’ block. If we want to merge left, for example, we can first rotate the board clockwise 90 degrees, merge up, and then rotate the board clockwise 270 degrees. The provided skeleton code implements this for you, though!

+ +

Hint: Stuck? Check out some of the existing blocks in Snap! How will you find where to insert the value in the board? Are there any blocks we provide that could help?

+

+ + + Part 4: Ending the Game + + +

+ + +

In this part of the project, you’ll be filling in the ‘no moves left for _?’ block, which should report False when there are still merges available on the board, and True when the board cannot be merged further. Keep in mind that the board can be full and there can still be moves available.

+ +

Input: board - a 2048 game board
+Output: whether or not the board can be merged further (Boolean)

+ +

Make sure you aren’t modifying the original board when working on this. Your output should be a Boolean, ie, True/False value signifying whether the game is over or not. +Hint: We found the “cascade” block helpful…

+

+ + + Part 5: Testing + + +

+ + +

An important part of learning to program is being able to test your code effectively. We’ve taken the training wheels off; in earlier projects we gave you all the tests, here we ask you to create the tests yourself. In the TESTER sprite, you will see four blocks:

+ +

Test function examples

+ +

You need to create at least two separate test cases for these four blocks, with their respective expected output. Please note, that the reporter test function requires the board to be wrapped in an additional list block. Once you are done with all your tests, to get credit from the autograder, you have to drag these four blocks into the four holes of the append block and then click that block to assign GRADED TESTS, which the Autograder will use to give you credit.

+ +

Graded tests variable

+ +

Please note that your test cases should output True, not False. This is because the goal of testing is to check that your blocks work in normal cases as well as edge cases, not to check that it fails when expected. If your block outputs False, we assume this means your block does not pass the case and is therefore faulty. When writing test cases, each test should include input and output (follow the format in the Testing lab), and you should think about a genuine input for the block that would help you test if it accomplishes the task it should do, or catches some edgecase. For example, does the merge column up block work on a column with the values [0, 0, 2, 2]? If the merge column with this input correctly outputs [4, 0, 0, 0] in that column, the test block should output True. +Check out these workbook pages which go deeper into the Test block and testing. Feel free to test your concepts in the 2048 lab section. Tests only present in your lab sprite will not be counted for project credit. The tests must be present in the “TESTER” section.

+ +

Here is guide and some examples of the testing block:

+ +

Testing Block Guide

+

+ + + Feedback Form + + +

+ + +

Congratulations on finishing your third project in CS10🥳Please spend some time completing this feedback form. This will be worth 1 point of your project grade. Each member of your group should submit to the form. Thank you!

+

+ + + Grading + + +

+ + +

You have five blocks to write, and they will be scored according to the table below; a perfect score would earn 35 points. Note that for a particular block, the test cases may have different weights. The autograder needs a score between 0 and 1, so we divide the total score by 35 to send to the autograder. You should continue to work on your code until all test cases pass

+ +

Remember that your final score on this project is the score you’ll see on Gradescope, which will be out of 35 points. +If at any point you’d like to see a more detailed about how we calculate that out-of-35 score, you can run the block we provide, which reports a nicely-formatted table (with headers) showing every test case, the expected value, and the actual value. +Note: correct, working code should handle those test cases, but not have the test cases hardcoded into your solution; they should be able to handle any inputs according to the specifications. +See grading breakdown below:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BlockType of BlockPoints per Block
add 2 or 4 to _Reporter4.67
rotate _ clockwiseReporter4.67
merge up column _ of _Reporter11.67
merge up _Reporter4.67
no moves left for _ ?Predicate4.67
TestingVariable3.65
Feedback FormN/A1
+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/project4/index.html b/_site/projects/project4/index.html new file mode 100644 index 0000000..d4e343d --- /dev/null +++ b/_site/projects/project4/index.html @@ -0,0 +1,905 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 4 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 4: Tech in Context + + +

+ +
Due at: 11:59 PM PST on Wednesday, 10/16
+ + +

Version 1.0. Last Updated: 2024-10-10.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ + + +
+

Any important updates or clarifications will be made here.

+
+

+ + + Content + + +

+ + +

I. Submission Guidelines +II. Introduction +III. Project 4 Timeline +IV. AI and Generative Tool Guidelines +V. Content Guidelines + a. Part 1: The Artifact and Documentation + b. Part 2: Group Presentation + Peer Feedback + c. Part 3: Peer Reflection/Comments +VI. Feedback Form +VII. Rubric & Grading

+

+ + + Submission Guidelines + + +

+ + +
    +
  1. Upload your project to the Project 4: Artifact + Documentation assignment on Gradescope
  2. +
  3. After you present, collect the peer feedback forms which you will need to upload to the Gradescope assignment: Project 4: Comments + Peer Feedback +
      +
    • You will also need to include your comments to two peer’s projects.
    • +
    +
  4. +
  5. Having trouble? Contact your lab TA or go to office hours (OH)!
  6. +
+

+ + + Introduction + + +

+ + +

This semester, you have explored how computer science and technological innovations shape society—from individual experiences to global transformations. For this project, you’ll step away from coding to select a creative media format that allows you to critically examine an intersection between technology and society. The project will consist of three parts: creation of an artifact with project documentation, live presentation, and peer reflection. This approach offers an opportunity to engage with the actions and consequences of technology in a non-traditional format.

+ +

You will select a creative medium to explore a tech-related topic of your choice. Acceptable formats include art/drawings, sculptures, videos, infographics, short films or sketches (stop motion, live action, or digital using Snap! only), collages, or dioramas. Written works like essays, songs, or poems are not permitted, nor are single photographs or single-plane AI-generated content. Additional guidelines regarding AI or generative tools are written below. If you’d like to use a different medium, you must get approval from the TAs.

+ +

The medium you select should effectively convey the societal, economic, or cultural impact of your chosen topic—whether it’s a technology, theory, program, event (past or present), or object. Previous topics have included artificial intelligence (AI), Facebook, smart farming, the internet, the TikTok algorithm, robotic teachers, and online security. Examples of accepted artifacts could look like an Infographic on AI Bias in Decision-Making, a Handmade Collage on Social Media’s Impact on Youth, or a Sculpture on Data Privacy.

+ +

If you’re unsure of a topic, consider a technological innovation that has significantly transformed the way we live, work, or interact—socially, economically, or culturally. Be sure to focus on a specific topic that allows for in-depth analysis or creative expression within the scope of the project.

+ +

We want this to be a fun and exciting project that allows you to pursue your interests. This project shouldn’t feel like a grind (we are hoping!). The expected time spent on this should not exceed five hours. Ideally, most of the time spent on the project will be doing research on the topic.

+

+ + + Project 4 Timeline + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
PartSubmission MethodDue Date
Part 1: Artifact + DocumentationGradescopeWED 10/16 AT 11:59 PM
Part 2: PresentationIn Person in Discussion or Makeup OH (makeup times will be limited and posted on EdStem)THURS 10/17
Part 3: Peer Reflection/Comment + FeedbackGradescopeWED 10/23 11:59 PM
+

+ + + AI and Generative Tool Guidelines + + +

+ + +
    +
  • You may only use AI tools for research, feedback, idea formation, captioning, and/or image generation to support your project.
  • +
  • Plagiarism, including uncredited AI-generated work, will not be tolerated.
  • +
  • All final work you submit must be your own creative work. AI should assist, but not replace, your creativity and effort.
  • +
  • Any content generated by AI must be properly cited and referenced in your project.
  • +
  • Citations for AI-generated content should follow the MLA format, with clear acknowledgment of the tool and its contribution.
  • +
  • Be transparent about how AI tools influenced your process in the project documentation portion.
  • +
+

+ + + Part 1: The Artifact and Documentation + + +

+ + +

The artifact should adhere to the following guidelines:

+
    +
  • Solo project
  • +
  • Adhere to our guidelines regarding artificial intelligence and generative tools
  • +
  • Use of creative medium to explore a tech-related topic of your choice. +
      +
    • Acceptable formats include: art/drawings (digital or traditional), sculptures, collages (physical), videos, infographics, short film/sketches (stop motion, live action, or digital using Snap! only), and dioramas
    • +
    • Please note that video submissions should be no longer than 5 minutes in length
    • +
    • Banned: Essays, songs, poems, or single photographs
    • +
    +
  • +
  • Focuses on a single topic/innovation and its impacts
  • +
  • Projects should be created in a manner that maximizes accessibility to all audiences (e.g., captions for videos, clear visuals, minimum 12pt font).
  • +
  • Ability to be showcased (either through digital projection/download or physical presentation)
  • +
  • 200-350 words reflection documentation explaining the creative process, the research behind the project, and the message you aimed to communicate +
      +
    • Minimum Word Count: 200 - 350
    • +
    • Hard Maximum: 450
    • +
    +
  • +
  • If applicable: include a Works Cited page using MLA format for citations (does not count towards the word count) +
      +
    • For in-text citations, reference the author and page number in parentheses, e.g., “Technology is cool” (AuthorLastName 40)
    • +
    +
  • +
  • Credit any and all images used in your project
  • +
+

+ + + Content + + +

+ + +

Your artifact should include details that express your technical topic in a creative and novel way. To help you do so, your artifact should answer some (but need not answer all) of the following questions, but you must select questions from each category (define the purpose, positive and negative impacts, and technical elements):

+ +
    +
  • DEFINE THE PURPOSE: +
      +
    • What is the innovation you are focusing on?
    • +
    • What is the context for the innovation?
    • +
    • What social issue was this innovation meant to address?
    • +
    • Does it resolve problems of a certain kind in a particular community?
    • +
    • How does the innovation impact quality of life?
    • +
    • What motivated the creation or development of the innovation?
    • +
    +
  • +
  • POSITIVE & NEGATIVE IMPACTS: +
      +
    • What has happened as a result of this innovation, intentional or unintentional?
    • +
    • Are there any long-term or short-term concerns for this innovation?
    • +
    • What major impact(s) has it contributed to in society, economics, or a particular culture or subculture?
    • +
    +
  • +
  • TECHNICAL ELEMENTS: +
      +
    • How might we understand this innovation?
    • +
    • How does this innovation relate to other innovations?
    • +
    • What algorithms are involved in this innovation?
    • +
    +
  • +
+

+ + + Project Documentation Guide (200-350* Words) + + +

+ + +
    +
  • Format +
      +
    • Use clear headings and subheadings.
    • +
    • Standard font (e.g., Times New Roman, Arial) at 12-point size.
    • +
    +
  • +
  • Content Overview +
      +
    • Introduction +
        +
      • Briefly introduce your project, including the topic and the medium used.
      • +
      +
    • +
    • Creative Process +
        +
      • Explain the steps you took in creating your artifact.
      • +
      • Discuss how you generated and refined ideas, and any challenges you faced and overcame
      • +
      +
    • +
    • Research +
        +
      • Summarize the key research conducted that informed your project
      • +
      • Highlight significant findings and insights that shaped your understanding of the topic
      • +
      +
    • +
    • Intended Message +
        +
      • Clearly articulate the main message you aimed to communicate through your artifact
      • +
      • Explain how your chosen medium effectively conveys this message
      • +
      +
    • +
    • Citations +
        +
      • Include proper in-text citations in MLA format for any sources used and a Works Cited page at the end
      • +
      • The Works Cited page does not contribute to your final word count
      • +
      +
    • +
    +
  • +
+

+ + + Submission + + +

+ + +
    +
  • You’ll upload a digital archive of your finished artifact and documentation to Gradescope. +
      +
    • The archive must be uploaded in a single upload for each file submission section. Multiple photo uploads will not be accepted.
    • +
    • Multiple images or papers should be compressed and attached to your Artifact Documentation into a single file (PDF)
    • +
    • Exceptions are made for video or Snap! Files, which may be compressed into a single url link or .xml file and added as a link on the Documentation. Please remember to share access with all (public access), so we are able to grade your submission. Failure to do so will result in a ‘0’ score. +
        +
      • For video submissions we encourage attaching an unlisted YouTube Link or a Google Drive link
      • +
      +
    • +
    +
  • +
  • Your Documentation should include: +
      +
    • The Title of your Artifact
    • +
    • Your Name
    • +
    • Date of submission
    • +
    +
  • +
+

+ + + Part 2: Group Presentation + Peer Feedback + + +

+ + +

For this assignment, you will present your Artifact in small, collaborative groups during our scheduled Discussion session (Thursday 7-9 PM). This format is designed to foster a deeper exchange of ideas, encourage constructive feedback, and allow for a more intimate exploration of the societal, economic, or cultural impact of the tech-related topics we are studying.

+ +

The small group setting is intended to create a supportive environment where you can confidently showcase your creative medium, whether it be an artwork, sculpture, video, infographic, collage, or diorama. The goal of the presentations is not only to exhibit your work but to engage with your peers, offering insights into how your chosen medium effectively communicates the implications of your topic.

+ +

Presentations will be largely student led with AI/Tutor/TA supervision. You will be graded for your engagement and active participation.

+ +

You will sign-up for a time and group (rec: 4-5) that best works for you. Sign ups are filled on a first-come first-serve basis.

+ +

If you can not attend the allotted Discussion Time for any reason. You will have time in Makeup Office Hours to regain your points. Please, note we are only offering specific, limited times, and we will release more information later. Sign Ups will be released on Thursday, 10/17.

+

+ + + Presentation Guidelines (7 minutes) + + +

+ + +
    +
  • Signing up for a time +
      +
    • You must sign up for a time slot. Please do so by adding your first and last name to the Google Sheet
    • +
    • Please note, you are expected to stay the full discussion hour
    • +
    +
  • +
  • Artifact/Visual Aids +
      +
    • Present your physical project or digital archive
    • +
    • You may have supplementary notes and material although not required.
    • +
    +
  • +
  • Content Overview +
      +
    • Provide a clear and engaging introduction to your artifact and its focus (e.g., the technology you explored and its societal implications)
    • +
    • Summarize the creative process behind your artifact, including your chosen medium and how it conveys your topic.
    • +
    • Highlight key points such as: +
        +
      • The societal, conomic, or cultural impact of the technology.
      • +
      • Any challenges or ethical dilemmas explored.
      • +
      • The role of AI, if applicable, in your research or artifact creation.
      • +
      • Include a brief discussion of sources or research that informed your work (especially for AI use, citations, and references).
      • +
      +
    • +
    +
  • +
  • Clarity and Engagement +
      +
    • Speak clearly, make eye contact, and engage your audience.
    • +
    • Focus on key insights from your project and why it’s important, leaving details for the Q&A.
    • +
    +
  • +
  • Grading +
      +
    • Points are given from peers’ feedback form. You must collect each feedback form from the peers you presented in front of for credit. Failure to collect all responses will result in a 0.
    • +
    +
  • +
+

+ + + Q&A Discussion Guidelines (3 minutes) + + +

+ + +

After your presentation, there will be a 3-5 minute discussion period where peers are encouraged to ask questions, share thoughts, and provide constructive feedback. This dialogue is essential for refining your understanding of both your own work and that of your peers.

+ +

Be ready to answer follow-up questions related to your project, process, and topic. This includes technical aspects, societal impacts, ethical considerations, and the use of AI tools.

+ +

Aim to facilitate dialogue by asking the audience or classmates for their thoughts or feedback on your topic. You are in charge of the Q&A, so do your best to guide the conversation.

+ +

Conclude the Q&A with a brief summary of your project’s key points or takeaways based on the discussion.

+

+ + + Part 3: Peer Reflection/Comments + + +

+ + +
    +
  • Guidelines & Submission +
      +
    • Reflect on 2 of your classmates’ essays on Gradescope (Due: 10/23) . +
        +
      • Your response should be a short reflection based on two presentations you participated in.
      • +
      • You can write about something new you learned, something that stood out to you or you found surprising, or how the project relates to your prior knowledge about the subject, how the topic of the essay connects with your topic, etc.
      • +
      • Your comments should include at least one question about the topic.
      • +
      • The expected length of each response is around 3-6 sentences.
      • +
      +
    • +
    • The 2 students you should respond to are: any two students in your group (you pick)
    • +
    • Your feedback will not be shared with the students and will be used for the purpose of evaluating your peers and your own work
    • +
    +
  • +
+

+ + + Feedback Form + + +

+ + +

Congratulations on finishing your fourth project in CS10🥳

+ +

Please spend some time completing this feedback form. This will be worth 1 point of your project grade. Thank you!

+

+ + + Rubric & Grading + + +

+ + +

Project 4 will be graded for coherence and content based on the following rubric.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PartCriteriaPoints
Part 1: Artifact and Documentation (8 pts)  
 Submission of Artifact in the correct format on Gradescope+0.5
 Artifact is an acceptable medium to explore a single, tech-related topic.+0.5
 Artifact includes details that express technical topic of choice in a creative and novel way+3.0
 Documentation is between 200 and 350 words (450 hard max), and is clear and coherent+0.5
 Documentation explores the creative and research process on the Artifact+1.5
 Documentation highlights intended message of Artifact+1.5
 All references are properly cited and submission follows style guide+0.5
Part 2: Presentation (4 pts) (Partially graded by peers)  
 Signs up and is present at the allotted time+1.0
 Explains artifact’s purpose and impact (Peer graded)+1.0
 Facilitates and leads discussion/Q&A with peers (Peer graded)+1.0
 Provides thoughtful answers to at least 2 peer questions (Peer graded)+1.0
Part 3: Peer Reflection (3 pts)  
 Reflects on a student’s presentation (3-6 sentences). Comments are insightful and thoughtful+1.0
 Reflects on a second student’s presentation (3-6 sentences). Comments are insightful and thoughtful+1.0
Feedback Form (1 pt)  
 Complete the feedback form+1.0
+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/project5/index.html b/_site/projects/project5/index.html new file mode 100644 index 0000000..103887c --- /dev/null +++ b/_site/projects/project5/index.html @@ -0,0 +1,877 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 5 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 5: Pyturis + + +

+ +
Due at: 11:59 PM PST on Thursday, 11/14
+ + +

Version 1.0. Last Updated: 2024-11-01.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ + + +
+

Project 5 will be submitted on PrairieLearn not Gradescope

+
+ +

Starter File and Submission Link

+

+ + + Content + + +

+ + +

I. Submission Guidelines
+II. Intoruction
+III. Part 0: Set Up
+IV. Part 1: Board
+V. Part 2: Pytromino
+VI. Rubrics, Grading and Submission
+VII. Appendix: Pyturis Game Rules

+

+ + + Submission Guidelines + + +

+ +

To run the PrairieLearn autograder, you’ll need to submit models.py and board.py to the assignment titled Pyturis on PrairieLearn. You can either submit these filed individually or submit the entire project folder to the PL assignment, as irrelevant files will be filtered and not processed automatically.

+

+ + + Introduction + + +

+ +

+ + + Brief + + +

+ + +

Introduction Pyturis

+ +

In this project, you’ll code the game Tetris in Python, with the Turtle library rendering the graphical user interface (GUI). Python + Turtle + Tetris = Pyturis! This game involves fitting blocks called “pytrominoes’’ together to fill and clear horizontal lines. +When you’ve correctly implemented all the required functions, you’ll be able to play Pyturis on a screen that looks like the one to the right.

+

+ + + Preliminaries + + +

+ + +

You’ll need to have watched the Python lectures to complete this project. We also highly recommend completing Lab 13: Intro to Python before starting this project to get acquainted with Python and a text editor. Lab 14: Lists + Mutability and Lab 15: Data Structures in Python may help your understanding of how to use lists in Python, and Lab 16: OOP in Python offers a helpful tutorial with object-oriented programming (OOP) in Python, which is the basis of this project.

+ +

**We require you to complete this project with a partner. **

+

+ + + Goal + + +

+ + +

The goal of this project is to provide an opportunity for practicing working with object-oriented programming (OOP) in Python by building a practical program with a structure that mimics real-world projects. In this project, you’ll:

+
    +
  • practice working with row-major order (a common model for board structures, similar to the new 4x4 board with values block you used in Project 3)
  • +
  • learn how to implement and work on either side of an abstraction barrier
  • +
  • become familiar with using and extending an existing codebase rather than starting from scratch
  • +
+

+ + + TODO + + +

+ + +

All of the files you’ll need to implement are marked in the files with TODO: your solution here, which you can search for with CTRL+F when you open the starter code in your preferred text editor. You can play a few games of Tetris here, or read this additional section of the spec to become familiar with the game rules. If you’re writing more than 10 lines of code for any function, we recommend you consider other ways to achieve what you’re trying to do, or take a break and head to OH for assistance!

+

+ + + Part 0: Set Up + + +

+ +

There are two things you’ll need to set up before you can begin working on the project: the version of Python you’re using and the starter code.

+

+ + + Python Version + + +

+ +

To make sure your Python has all the expected functionality, you’ll need to be using Python 3.11. +Check the version of Python that your computer has running by pasting the following line of code into your terminal. +For Windows:

+
py --version
+
+

For Mac:

+
python3 --version
+
+

An example of the result from executing the code above should look like: +(For Windows)

+
PS C:\Users\Oski> py --version
+Python 3.11.x
+
+

(For Mac)

+
oski@Oski-MacBook-Air ~ % python3 --version
+Python 3.11.x
+
+ +

If your version number is smaller than 3.11 (starts with 3.9 or something smaller), check out this nice How to update python page or go to OH or lab for help upgrading your Python version.

+

+ + + The Starter Code + + +

+ + +

To mimic the majority of real-world coding projects, for this project, you’ll be working with an existing codebase, where some functions and classes have already been defined for you. To begin, download the starter ZIP file here!

+ +

There are several files in the ZIP file, but you’ll only be editing models.py and board.py. If you’re curious, you can open and read the other files, but that isn’t necessary to complete the project. Do not edit any other files. If you think you have by accident, go to OH for help! +The starter code also contains a local grader that you can use to run some provided sanity-check tests on your code (instructions are in the relevant sections). These local tests are a good barometer for how your implementation is doing, but there are additional randomized tests in the PrairieLearn autograder we expect you to pass to get 100%. Keep in mind that you’ll still need to pass the tests on the PrairieLearn autograder for credit.

+ +

Note: Do make sure that you’re not modifying function signature (how many/what types of arguments a function takes in, the name of a function, how many/what types of arguments a function outputs) as this could cause trouble when running the PL autograder. +Nice work! Now you’re ready to start coding.

+

+ + + Part 1: Board + + +

+ +

+ + + Brief + + +

+ + +

In Pyturis, the board is stored as a 1D list in row-major order. +Row-major order stores values in the same row of a matrix consecutively and concatenates rows into a single list starting from the top.

+ +

Board Setup

+ +

The relationship between the coordinates of an item in the board — notated as (x, y) — and the index of the corresponding item in the row-major order list is represented by the following equation, and illustrated in the above image.

+ +
index = (y * num_cols) + x
+
+

+ + + Attributes + + +

+ +

The Board class is located in the board.py file. As with the Holder class, there is already a constructor method provided, which contains a few useful attributes.

+
    +
  • [Int] self.num_rows represents the number of rows the board object has
  • +
  • [Int] self.num_cols represents the number of columns the board object has
  • +
  • [List] self.grid contains the values on the 2D board in row-major order
  • +
+

+ + + TODOs + + +

+ +

You’ll need to fill out three methods in board.py:

+
    +
  • Q1: get_board_item(board, x, y): Return the item at (x, y) on the board.
  • +
  • Q2: set_board_item(board, x, y, item): Return a new Board object where the input item is placed at (x, y) on the board. Hint: modify the new board created by copy, instead of directly modifying the original board!
  • +
  • Q3: valid_coordinate(board, coordinate): Take in a coordinate formatted as a tuple of two ints, (x, y), and return whether it represents an existing position on the board as a boolean. +x is valid if it is non-negative and less than the number of board columns +y is valid if it is non-negative and less than the number of board rows +coordinate is valid if x AND y are both valid.
  • +
  • Q4: get_row(board, y): returns a list containing all items in row y on the board.
  • +
  • Q5: check_row_full(board, y): Check if a row y on the board is full, such that all of its grids contain a non-zero value. If so, return True, else just return False. (In practice of the GUI, this works, because we gave an empty board a default value of 0, and then each types of pytromino a unique integer, so if some part of a pytromino is present at the first column of the row, then the row will look like [1, 0, 0, 0 … 0]. Rendered by the GUI, this is a colored block at the first column, and then empty in all other columns! If the row is full, it should then contain no 0 in it.)
  • +
+

+ + + Hints + + +

+ +
    +
  • Keep in mind the equation above for calculating the index!
  • +
+

+ + + Local Tests + + +

+ + +

To check how your implementation is doing, you can run the local tests in the project directory with the following command. The code below tests all your work in board.py. To test each individual question, replace the Board in the command below with Q1, Q2, or Q3. +If there is no output in the terminal, that means your tests are PASSING! +For Windows:

+ +
py grader.py Board
+
+ +

For Mac:

+
python3 grader.py Board
+
+

+ + + Part 2: The Pytromino + + +

+ +

+ + + Brief + + +

+ + +

In Pyturis, pytrominoes are the name for the pieces that fall from the top of the board. Each pytromino is represented as a single shape made of four blocks. In addition to absolute coordinates that represent where the pytromino is on the board, each block in the pytromino has a relative coordinate, to indicate its position within the pytromino. +The relative coordinates are calculated according to where the block is relative to the center of rotation for that pytromino.

+ +

Pytromino Setup

+

+ + + Attributes + + +

+ +

The Pytromino class is located in the models.py file. As with the Board class, there is already a constructor method provided, which contains a few useful attributes:

+
    +
  • [Tuple] self.center_rot represents the coordinates of the center of rotation block of a pytromino and defaults to (0, 0)
  • +
  • [List] self.blocks_pos lists the set of coordinates (x, y) of the blocks in a pytromino relative to the center
  • +
+

+ + + TODOs + + +

+ +

You’ll need to fill out four methods in models.py. We recommended (but do not require) that you use list comprehensions in your solution (when possible).

+
    +
  • Q6: rotate_block_90_cw(pytromino, pos): Given pytromino, a Pytromino object, and pos, a tuple of x, y coordinates representing the center of rotation, return the updated coordinates as a tuple when pytromino is rotated 90 degrees clockwise.
  • +
  • Q7: filter_blocks_pos(pytromino, fn): Given pytromino, a Pytromino object, and the predicate function fn, which takes in a tuple coordinate and returns a boolean, filter the list of block positions of the pytromino on fn, and return the result as a new list of coordinates.
  • +
  • Q8: shift_down_fn(pos, steps): Given a position pos as a tuple, return a new position that’s shifted down by steps. Hint: return a new position instead of directly modifying the original position!
  • +
  • Q9: shift_left_fn(pos, steps): Given a position pos as a tuple, return a new position that’s shifted left by steps.
  • +
+

+ + + Validate & Apply + + +

+ + +

You’ll also need to fill out validated_apply_non_rot. However, you’ll need to have completed ALL other methods first. A validated apply means applying some transformation function (in our case, fn) to some input only if the output of that transformation function passes some validator check. If the output doesn’t pass the check, the input is left untransformed.

+ +
    +
  • Q10: validated_apply_non_rot(self, fn, validator): returns a new Pytromino object, whose coordinates will be updated correspondingly if the transformation fn is successful on all items in self.blocks_pos. If the operation is not successful, the coordinates of the returned object remain unchanged. This function is called when the transformation is not rotational.
  • +
+ +

In English, we have a Pytromino (consisting of four squares on the screen) and a fn() that wants to move it somewhere. The validator is going to check whether, as a result of that move, all the squares of the Pytromino are still on the screen (i.e., pass the validator). If all are, then great, return a Pytromino that is the result of the fn() move (remember BOTH the center of the Pytromino and all its squares need to be moved). Otherwise, don’t make the move and return a Pytromino without the fn() move applied.

+ +

arguments:

+
    +
  • [Pytromino object] pytromino: the Pytronimo object to operate on
  • +
  • [Function] fn : takes in a coordinate and returns a transformed coordinate
  • +
  • [Function] validator : validates an input coordinate; returns True if valid, False otherwise +For this function, you should use validator to check each coordinate resulting from calling fn on every item in self.blocks_pos.
  • +
+

+ + + Local Tests + + +

+ + +

To check how your implementation is doing, You can run the local tests in the project directory with the following command. The code below tests all your work in models.py. To test each individual question, replace the Pytromino in the command below with Q6 through Q10. +If there is no output in the terminal, that means your tests are PASSING!

+ +

Please make sure you are in the correct folder when you do your test. That is you are in FA22-Pyturis-Starter (if name unchanged) before running the doctests.

+ +

For Windows:

+
py grader.py Pytromino
+
+ +

For Mac:

+
python3 grader.py Pytromino
+
+

+ + + Running the GUI + + +

+ + +

Once you’ve finished all parts, you’re done! Nice work! You can now play the game of Pyturis you’ve coded, by running the following command inside the project directory: +For Windows:

+ +
py __main__.py
+
+ +

For Mac:

+
python3 __main__.py
+
+

+ + + Rubrics, Grading and Submission + + +

+ + +

This rubric gives an overview of the points that passing tests in the PrairieLearn autograder is worth, relative to each function you have to fill out. This project is autograded, not manually graded, so what you see on PL when the autograder stops running is what your score is.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rubrics
Part 1: The Board (15)
get_board_item(board, x, y)4
set_board_item(board, x, y, item)5
valid_coordinate(board, coordinate)5
get_row(board, y))5
check_row_full(board, y)5
Part 2: The Pytromino (15)
rotate_block_90_cw(pytromino, pos)5
filter_blocks_pos(pytromino, fn)5
shift_down_fn(pos, steps)5
shift_left_fn(pos, steps)5
validated_apply_non_rot(self, fn, validator)5
Feeback Form (1)
+

+ + + Submitting to PrairieLearn + + +

+ +

Before you submit, it’s a good idea to run the local sanity-check test cases again. You can do the whole batch at once using: +for Windows:

+
py grader.py
+
+

for Mac:

+
python3 grader.py
+
+

Do keep in mind that the local tests aren’t representative of all the test cases that will be checked on PrairieLearn. The PrairieLearn autograder is available on the assignment on PrairieLearn, and will be announced over Ed, and you can submit to it an unlimited number of times to see how your project is doing.

+ +

To run the PrairieLearn autograder, you’ll need to submit models.py and board.py to the assignment on PrairieLearn. You can either submit these files individually or submit the entire project folder to the PL assignment, as irrelevant files will be filtered and not processed automatically.

+ +

Both you and your partner must submit the project individually into PrairieLearn.

+ +

The code between you and your partner can be the same. Once you’ve submitted, both of you will indicate each other as partners in the Project 5 Feedback Form +A reminder that the project feedback form is worth 1 point of your project grade.

+

+ + + Appendix: Pyturis Game Rules + + +

+ + +

Below are the rules for Pyturis:

+ +

The game starts with a main menu. Press (s) to start the game.

+ +

You can change different difficulty levels by pressing (d) from the main menu, then press (1), (2), (3), (4), corresponding to Easy, Medium, Hard, and Expert, to select a specific level, and press (f) to confirm and return to the main menu. Defaulted to medium.

+ +

The game features acceleration, which, if set to “ON”, will make pytromino descend faster and faster in a game. You can toggle acceleration on/off by pressing (a) in the main menu. Defaulted to OFF.

+ +

You can press (t) from the main menu to view tutorials, which is basically a concise version of the rules here. To quit the game, press (q) from the main menu.

+ +

The game starts with an empty board. Different pieces (called “pytrominoes”) will descend one by one from the top.

+ +

As a pytromino descends, the player will be able to rotate and move it using the arrow keys. +-To rotate a piece 90 degrees clockwise, press the (up) arrow key. +-To move a piece left and right, press the (left) and (right) arrow keys respectively. +-To move a piece down faster, press the (down) arrow key. +-To “hard drop” a piece, press the (space) key.

+ +

On the right-hand side of the screen, the player will be able to see a preview of the upcoming pytrominoes. To put off using the current pytromino for the one coming up next, a player can put it “on hold” by pressing the (c) key. To exchange the current pytromino with the one that’s held, press (c) again. A player can only “hold” once per pytromino.

+ +

A pytromino will stop moving when it either hits the bottom of the board or comes to rest on top of another pytromino. If the placement of the pytromino results in the formation of a continuous horizontal line, this line will disappear. A player’s score increases based on the number of lines they clear, and number of lines they move the pytromino down.

+ +

The game ends when a pytromino hits the top of the board and no more lines can be cleared; you can not “win” a game in Pyturis. +When a game ends, press (b) to return to the main menu.

+ +

At the beginning of the game, the holder is empty. The first time (c) is pressed, the pytromino will be stored in the holder, and the next pytromino will be dropped from the top. Importantly, each pytromino can only be swapped once in its lifetime; in other words, for each pytromino, only the first time (c) is pressed, does anything happen. The holder is meant to “hold” ONE item at a time.

+ +

When the holder is not empty, and a new pytromino is in the center grid, you can press c and the pytromino in the holder will be swapped with the pytromino currently in the center grid. Different from some of the Tetris implementations, Pyturis will not start dropping the swapped pytromino from the top of the center grid, instead, it will start dropping from where the current pytromino is (to make the game a little harder). As a result, if the swap is not possible because the swapping pytromino cannot fit where the current pytromino is, the swap will not happen.

+ +

When you are done, submit your file to PrairieLearn. You only need to upload the following files:

+
    +
  • board.py
  • +
  • models.py
  • +
+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/project6-project/index.html b/_site/projects/project6-project/index.html new file mode 100644 index 0000000..9f83234 --- /dev/null +++ b/_site/projects/project6-project/index.html @@ -0,0 +1,803 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 6 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 6: Final Project - The Project + + +

+ +
Due at: 11:59 PM PST on Friday, 12/06
+ + +

Version 1.0. Last Updated: 2024-11-05.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +
    +
  • You are required to attend the final project proposal meetings in person. Failure to do so will result in no points awarded for your approved features and meeting attendance, leading to a 50% deduction in your final project score.
  • +
+ +
+

There are three required components for the project:

+
+

The project / code itself +README / documentation on your project +Video of your group interacting with your project

+
+
+ +
+

Project 6 Parties (both during lab from 5 to 9PM in Moffit-145)

+
+

Monday, November 25th +Monday, December 2nd

+
+
+

+ + + Content + + +

+ + +

I. Recommended Timeline

+ +

II. Introduction

+ +

III. Technical Requirements

+ +

IV. Style Requirements

+ +

V. README Requirements

+ +

VI. Video Requirements

+ +

VII. Submission Guidelines

+ +

VIII. Rubric & Grading

+ +

IX: Additional Resources

+ + +
    +
  • The dates listed below are the suggest timeline for completion of each component of the final project.
  • +
  • This timeline asumes that you have completed both the proposal review and Project 5: Pyturis by Wed 11/13. +
      +
    • It is recommended that you start working on your project as soon as your proposal is approved.
    • +
    +
  • +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Group w/ 2 FeaturesGroup w/ 3 Features
Feature 1: 11/17Feature 1: 11/14
Feature 2: 11/28Feature 2: 11/21
Full Project Submission Ready: 12/4Feature 3:11/28
README and Submission: By 12/6Full Project Submission Ready: 12/4
 README and Submission: By 12/6
+

+ + + Introduction + + +

+ + +

For your final project, you’ll be turning in both code and a README. The README, which is a document that describes your project and its features, is meant to be an assignment where you’ll write up documentation to practice explaining your work to someone else. This project is a chance for you to implement an idea driven by your own interest!

+

+ + + Technical Requirements + + +

+ + +

There are certain technical and style requirements that we want you to be able to demonstrate in the implementation of your final project, regardless of what kind of project you’re doing, which are listed below. For some of the rubric items, you can also mix and match (see rubric for more details). Here is a list of some of the technical requirements you must include:

+ +
    +
  • Non-trivial list: Your project should include at least one non-trivial list, meaning a list whose function could not be simply replaced with another implementation. Often this can be a tracker of high scores, or part of a game board.
  • +
  • Custom block/function: Your project should include at least TWO functions that you define yourself. There is no restriction on what type of function this should be, whatever suits your project is what you should do!
  • +
  • Script/local variable: Your project should include at least one non-global variable.
  • +
+

+ + + Style Requirements + + +

+ + +

It’s best to keep up good style (commenting, specific variable names, non-repetitive code) as you work your way through implementing a project, but that doesn’t always happen. This is a list of what style markers you should aim for as you’re coding, but we also recommend that you do a final sweep for these before you submit!

+
    +
  • Commenting – At minimum, we’re looking for clear and coherent comments for the following purposes: +
      +
    • Describing how to start/run the program: Often, this is the green flag for Snap!, and typing a command into the terminal for Python. Make sure to specify what to do, even if it seems obvious! The tutors are not as familiar with your project as you are. Make sure this is in both your code as a comment and in your README file.
    • +
    • For each function or block you’ve written: An explanation of its inputs + its outputs or what data it changes if it’s a command block or does not return anything.
    • +
    • Here’s a guide to commenting for reference!
    • +
    +
  • +
  • Variables & functions +
      +
    • Variable scope: Make sure you’re only using global variables when absolutely necessary (i.e., when they need to be referenced at multiple points in the program, or by multiple functions). Try to use script/local variables where possible.
    • +
    • Naming convention: Keep function and variable names clear, by specifying what they do or represent. A good rule of thumb is to give things names in a way that would still make sense to you if you needed to explain this project to someone else in a year. For example, a variable could be called “highScore” if it keeps track of the highest score so far.
    • +
    +
  • +
  • Abstraction & generalization — These are key computing ideas for a reason! Do your best to apply these principles as you code. Often, this will look like one of the following: +
      +
    • Generalizing code: If you can use a for-loop or a HOF or a helper function to prevent copy-pasting similar code, do it!
    • +
    • Levels of abstraction: Do your best to break down functions or features into smaller, concise pieces, so that each function can be focused on achieving a specific task or subtask. +
        +
      • If you find yourself with repetitive code, consider how you can abstract the part that is repeated.
      • +
      +
    • +
    +
  • +
+

+ + + README Requirements + + +

+ + +

Your README is meant to serve as a guide to your project, and will be used by the readers as a reference for grading to ensure that you’ve achieved all of the requirements. Instructions for the general sections of the README are included in the template. An additional optional section, the Bug Writeup, is explained in detail below.

+ +

The template (including instructions) for the final project README can be found here. Please make a copy of the Google Doc to work on, and make sure to submit it as a PDF.

+ +

[Optional] Bug Writeup: Sometimes, despite your best efforts, the project deadline rolls around and you’ve still got a bug big enough that one or more of your features isn’t working correctly. This happens in industry as well — think about app updates you’ve downloaded!

+ +

Not to fret, you can earn back up to 75% of the points originally lost for a non-functional feature with a thorough write-up. (Points given will depend on the size of the bug; this is meant to limit the points penalty for not implementing a bug-free project feature.)

+ +

Here’s an example of what we’re looking for in a bug writeup, based on a function you wrote for the OOP lab.

+

+ + + Video Requirements + + +

+ +

Your video is meant to be a supplement to your README, and will be used to make sure that your submission is graded fairly. Please demonstrate exactly how to run your project (especially if you are using Python), the controls, and each of the features. If you are completing a Bug write-up, please demonstrate the bug(s) that you are explaining in your README in order to receive points back. Your video must be under 3 minutes in order to receive full credit.

+ +

You may either submit your video via Google Drive or YouTube. If you are submitting through YouTube please create an unlisted video. The Teaching Assistants will not be grading the projects. If you are submitting through Google Drive please make sure to share your video with the Tutors from the course website.

+ +

Additionally, include the link to your shared video in your README. If we do not have access to your video you may not get credit for this portion of the assignment.

+ +

Final Project Demo Examples:

+ +

Python

+ +

Snap!

+

+ + + Submission Guidelines + + +

+ + +

You should submit two things to the Gradescope final project assignment:

+
    +
  • README: This should be written on a copy of the template above with an embedded link to your video, and be submitted as a PDF. We will not accept READMEs submitted as .docx files or Drive links, etc.
  • +
  • Project code: This will be either a .xml file or a .zip folder. Your instructions will vary depending on what language your project is in.
  • +
+ +

Snap! projects:

+
    +
  • Download the .xml file from Snap!, using File > Export Project.
  • +
  • Rename the file to FirstPartner_SecondPartner_FinalProject.xml and upload directly to Gradescope. (Adjust accordingly if you are working solo or in a group of three.)
  • +
  • Upload the README PDF and the .xml file to the Final Project assignment on Gradescope.
  • +
+ +

Python projects:

+
    +
  • Put the .py file(s) containing your project code along with any other media (images, sounds, etc.) that are used in the project into a ZIP folder.
  • +
  • Rename the ZIP folder FirstPartner_SecondPartner_FinalProject.zip and upload the ZIP file to Gradescope.
  • +
  • Upload the README PDF and the .zip file to the Final Project assignment on Gradescope. (Feel free to Google “How to make a .zip file” / ask for help on Ed.)
  • +
+ +

If you run into any issues submitting, go to a lab or office hours or make a private post on Ed

+

+ + + Rubric & Grading + + +

+ + +

Your project will be graded for style and technical correctness according to the following rubric. After you get your grades back, you can submit regrade requests via Gradescope (if you feel we missed something in your original file submission).

+ +

Please don’t forget to add your partner(s) to the submissions! How to add a partner to Gradescope.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
README(10 pts)
+2README contains features description
+2README contains complexity justification
+2README contains variable justification
+2README contains blocks/functions table
+2README or code comments describe program controls
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Features(15 pts)
+7.5 / featureGroups of 1-2, who implemented two (2) features
-7.5 / featureIf the feature implemented was not approved by TA (for groups implementing 2 features).
+5 / featureGroups of 2-3, who implemented three (3) features
-5 / featureIf the feature implemented was not approved by TA (for groups implementing 3 features).
-3 / bugFor each major bug (project-breaking/crashing)
-1 / bugFor each minor bug (errors only on specific input or subpart of feature)
+2 / bugOptional Bug writeup for a major bug (see README)
+1 / bugOptional Bug writeup for a minor bug (see README)
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Technical Requirements(15 pts)
+4Req 1: Custom function
+4Req 2: Custom function
+3.5Req 3: Non-trivial list
+3.5Req 4: 1 or more script or local variable(s)
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Style Requirements(5 pts)
+2Useful and coherent comments
-1Comments are disorganized / incoherent but present
+2No repetitive code / good use of helper blocks or functions
+1Clear and useful variable and block names
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Project Demo Video(5 pts)
+2Video contains how to run the project
+1.5Video contains how to use program controls
+1.5Video contains demonstration for each feature
-1Video is longer than 3 minutes
+

+ + + Appendix I: Additional Resources + + +

+ + +

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/projects/project6-proposals/index.html b/_site/projects/project6-proposals/index.html new file mode 100644 index 0000000..e3fda5e --- /dev/null +++ b/_site/projects/project6-proposals/index.html @@ -0,0 +1,678 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Project 6 | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +
+

+ + + Project 6: Final Project Proposals + + +

+ +
Due at: 11:59 PM PST on Wednesday, 10/30
+ + +

Version 1.0. Last Updated: 2024-10-25.

+ +

We highly recommend reading through this spec in its entirety before you begin.

+ +
    +
  • Meeting with a Staff Member +
      +
    • You must sign-up for a 10-minute slot with a staff member to get your project approved. Only one member of your group needs to attend. Failure to be one time will mean you will need to sign-up for a new time slot; otherwise, you will get a ‘0’ score. + +
    • +
    • Meetings will run a specific times during Week 11 (November 4th through November 11th)
    • +
    +
  • +
+

+ + + Content + + +

+ + +

I. Important logistics

+ +

II. Introduction

+ +

III. Complexity Guidelines

+ +

IV. Required Features

+ +

V. Proposal Contents

+ +

VI. Submission Guidelines

+ +

VII. Proposal Review: What to Expect

+

+ + + Important logistics + + +

+ + +
    +
  • The Project Proposal Meeting is worth 10 points of your final grade. 10 minute Meetings will be held in person Mon-Fri during Week 11 in Soda 326. To schedule a booking, click here for the booking page: Proposal Meeting Sign-ups.
  • +
  • You must work in groups of 2. Groups of 3 are sometimes permitted with approval from a TA, and we increase their project-complexity requirements accordingly. If you want to work alone you must get explicit permission from your lab TA. You will still be graded as if you were in a group of 2.
  • +
  • The deadline for this proposal part of the project is Wednesday, 10/30 at 11:59pm PST. Please ensure that you submit your proposal before the deadline. There will be NO extensions available for the proposal and it is your responsibility to reach out on EdStem if your group can not make any of the meeting times.
  • +
  • Please sign up for a time slot to meet up with a staff member for a proposal review before you submit the assignment on gradescope. You should sign up for an appointment on Google Calendar. You can choose whichever time works best for your group. Meetings will take place in-person, during designated lab times.
  • +
  • If none of the times work for you, please make a private post on Ed ASAP. If you do not notify us by 10/30, you will not be able to meet with a staff member and will receive a 0 on this part of the project.
  • +
+

+ + + Introduction + + +

+ + +

For the final project, you’ll be building a project that you envision in either Snap! or Python, completely from scratch (how cool is that!) First, however, you’ll need to submit a project proposal that will be reviewed by a staff member to ensure that your project won’t be too easy or too complex. The proposal should come to about 1-2 pages, single-spaced (before you transfer the information to Gradescope). An example is provided below. +This proposal is meant to be just an ideas-focused starting point — the spec for the technical requirements of the final project can be found here, and you should reference that as you work with a staff member to ensure that your project idea will meet all requirements.

+ +

Please read through this entire spec before writing your proposal. Keep in mind that the project proposal is a REQUIRED element of the final project, and you will receive a 0 on this part of the project if you do not submit your proposal and meet with a staff member for feedback.

+

+ + + Complexity Guidelines + + +

+ + +

Complexity, for your project, basically means “how difficult is it to implement?” and is used as a measurement to ensure that final projects fit a happy medium of not too hard and not too simple, when taking into account both how much you’ve learned and how much time you have. +If your project idea relies heavily on the following, we recommend you consider alternate projects, or try a suggested workaround:

+
    +
  • Using any primitive block in Snap! Will not count as a feature
  • +
  • Mainly being a guess-and-check game: This is generally considered too easy since it consists primarily of a - series of if-then-else statements. A number guessing game, for example, would not be complex enough. This might be a good mini-game in a bigger project.
  • +
  • Data entry: Alone, this might be considered too simple. Often, projects that rely on data entry get ‘bigger’ by having a bigger database. A fix for this would be having the data component be just one part of a bigger project.
  • +
  • Robot/AI player: Depending on the game, this could be a good fit, or too complex. An AI player for chess or Go would be too complex.
  • +
  • Games like Pong, Tic-Tac-Toe, Guess the word, or Hangman would likely not be complex enough and are NOT ALLOWED.
  • +
  • Games like Angry Birds, Balloons Tower Defense, or Need for Speed would likely be too complex.
  • +
  • Games previously implemented in Projects are not allowed (because you’ve already done them).
  • +
+ +

Don’t be worried if you really like a project idea but think it may be too complex, or not complex enough — that’s the purpose of having a proposal and proposal review process, so you can work with a TA to get your project complexity into the right range!

+ +

When considering what your project is, and how you plan to implement it, see if you can figure out a solution or a structure for a solution first, before defaulting to what you’ve seen done before! A few gauges for the complexity of the kinds of solutions we’re looking for are: coming up with logic to check for four-in-a-row in Connect 4 or recreating Flappy Bird in Snap!

+ +

Of course, there’s a range of project complexity that falls into the “accepted proposal” range. Here are a few examples.

+ +
    +
  • The Chrome Dinosaur Game: +
      +
    • Feature 1: TWO DIFFERENT OBSTACLES +
        +
      • Randomly generated shrubs and pterodactyls appear on the screen as obstacles.
      • +
      • Obstacles NEED to be traveling at different speeds (otherwise project will not be complex enough)
      • +
      +
    • +
    • Feature 2: The game ends when the dinosaur runs into an object.
    • +
    +
  • +
  • Mancala: +
      +
    • Feature 1: When a player chooses a group of marbles, those marbles get distributed around the board, picking up more marbles when the last one falls on a non-empty hole
    • +
    • Feature 2: Game over when all marbles are in the two goals, winner is the one with more marbles
    • +
    +
  • +
  • Doodle Jump: +
      +
    • Feature 1: Doodle jumps continuously, moving higher up in the sky as he lands on bouncing platforms that continuously move downwards
    • +
    • Feature 2: Game ends when Doodle falls off the screen
    • +
    +
  • +
  • Bubble Shooter (Difficult): +
      +
    • Feature 1: Computer will generate randomly colored bubbles that players can shoot
    • +
    • Feature 2: If the program detects groups of the same color, it will delete them.
    • +
    +
  • +
+ +

Other projects that fit complexity requirements that students have done in the past include: Frogger, Checkers, Flappy Bird, Snake, Chutes & Ladders, various puzzle games, various board games, data science analysis, Battleship, and chatbots.

+

+ + + Technical Requirements + + +

+ + +

There are certain technical and style requirements that we want you to be able to demonstrate in the implementation of your final project, regardless of what kind of project you’re doing, which are listed below. For some of the rubric items, you can also mix and match (see rubric for more details). Here is a list of some of the technical requirements you must include:

+ +
    +
  • Non-trivial list: Your project should include at least one non-trivial list, meaning a list whose function could not be simply replaced with another implementation. Often this can be a tracker of high scores, or part of a game board.
  • +
  • Custom block/function: Your project should include at least TWO functions that you define yourself. There is no restriction on what type of function this should be, whatever suits your project is what you should do!
  • +
  • Script/local variable: Your project should include at least one non-global variable.
  • +
+

+ + + Required Features + + +

+ + +

On top of the technical requirement your project must have required features. Here is a list of approved features. Your 2-3 features MUST be from the following list. If you are proposing to have a feature that does not fit within the guidelines below, you will need to discuss it with your TA, but it is unlikely to be approved. If you use two of the same features they must be distinct and have unique properties.

+ +
    +
  • 2D, Nested lists. The nested list can be a representation of the game board, highscores, positions, or some other structure
  • +
  • Extensive, dynamic visual display +
      +
    • Must include: +
        +
      • At least one background
      • +
      • At least two sprite costumes
      • +
      • At least one sound
      • +
      • A help screen or guide to interact with program / instructions
      • +
      +
    • +
    +
  • +
  • Organized Text UI in Python +
      +
    • Must include: +
        +
      • A visual print statement of current state of program
      • +
      • A list of functions the user can (such as help, place move, restart, etc.)
      • +
      +
    • +
    +
  • +
  • Extensive use of OOP in Python +
      +
    • The main logic of the name would use an OOP structure
    • +
    +
  • +
  • API calls (calls to other programs or websites) - Don’t worry about doing this one; but it’s an option if you’re interested!
  • +
  • Structures keeping track of important data +
      +
    • Examples: Dictionaries, Lists, Trees, Sets
    • +
    +
  • +
  • Complex Algorithm +
      +
    • Examples: +
        +
      • Merge sort algorithm
      • +
      • Determining whether a game is over condition
      • +
      • Determining whether a move is valid
      • +
      +
    • +
    +
  • +
  • Extensive use of libraries (in either Python or Snap!) +
      +
    • Must use at least three different functions for the library imported
    • +
    • Or three different libraries imported, and one function each is used.
    • +
    +
  • +
  • An AI that runs the program/plays game and tries to optimize for winning moves
  • +
  • Features that DON’T COUNT: +
      +
    • Randomization (it’s completely okay to have randomization, but it doesn’t count as a feature)
    • +
    • Helper functions
    • +
    • Inputs/Outputs and Response/Prompt +
        +
      • Example: Games that simply ask a user for a response/prompt to input
      • +
      +
    • +
    +
  • +
+

+ + + Proposal Contents + + +

+ + +

So now that you’ve got a project idea in mind, it’s time to write about it! The questions you should answer in your project proposal are below. We recommend you draft your answers out on a Google Doc or Word document before submitting them into Gradescope.

+ +
    +
  • Who are the members of the group? List each group member’s name and SID. You should work in pairs of 2, but if you want to work alone (or in groups of 3) you’ll need to get explicit permission from your TA during the meeting. This is a complicated project, so we very rarely permit students to work solo.
  • +
  • What language will your project be in? Python or Snap? If you’re doing a graphics-heavy project, we recommend Snap!, as staff will have limited capacity to assist with debugging Python libraries. If you’re not sure, pick whichever you and your group feels more comfortable coding in, and you can check in with your TA/tutor about it later.
  • +
  • What is your vision for the project? Describe the specific project and the major 2-3 features (listed above) you’d like to accomplish. Groups of 2 should list 2 features, groups of 3 should list 3. Please go into detail on this one, even if you think your project is well-known! The clearer you are, the better your TA/tutor will be able to help you adjust the project if it falls outside the optimal range of complexity.
  • +
  • How will someone interact with your project? Describe the controls that will be used. For Projects 1-2, the answer to this question would be text input via keyboard. For Project 3, the answer would be keyboard controls/arrow keys.
  • +
  • What are the technical elements behind your features? Go into more detail about your preliminary thoughts about how you’ll make the 2-3 features happen. What you come up with here doesn’t have to be exactly what you end up doing, but it should convey how you plan on implementing the project in terms of blocks/functions or computing ideas. For example, Pytris utilizes object-oriented programming to build and abstract different elements of the game.
  • +
+ +

Here is an example proposal; it should give a sense of how much detail we want you to go into on the proposal. Feel free to make a copy.

+

+ + + Submission Guidelines + + +

+ + +

By Sunday, October 28th 11:59pm PST deadline, you and your partner(s) will submit your project proposal as a group on Gradescope. There is 1 assignment, and you should mention the date and time of the slot you signed up for in Question 2 of the assignment.

+ +

The assignment has the proposal format in it, so your group will need to fill out all of the boxes with your answers to the questions listed in the previous section! Only one person from the group needs to submit. After you submit, please don’t forget to add your partner(s) to the submissions!

+ +

How to add partner to Gradescope

+ +

Your project proposal review will take place during the time slot your group signs up for. These slots are during the lab. You need to ensure that you can show up for the time slot you signed up for.

+

+ + + Proposal Review: What to Expect + + +

+ + +

You will explain your project and a staff member will review your project proposal, and either approve or disapprove it. Keep in mind that even if your initial proposal is disapproved, that’s only an indication that that specific version of the project might have been too complex or not complex enough! Your TA/tutor will work with you during the proposal review session to figure out a fix or adjustment to your project idea or suggest other ideas if necessary.

+ +

Regardless of the status of your project proposal (whether it’s unfinished or you’ve changed your mind), you must attend the project proposal review meeting with a TA/tutor. If you are able, please try to attend the lab/OH of the TA/tutor you have your proposal reviewed for the duration of the final project.

+ +

If your initial project proposal is not approved:

+ +
    +
  • It’s okay! This happens to lots of students every semester, and really just means that you’ll have to adapt your idea a bit to ensure it fits our complexity requirements, which the staff member you meet with for your proposal review will help you with. If you decide you’d rather pursue a different project idea, please note that you’ll need to write up another project proposal, and have that approved before you can start working. +Note: If you choose not to adjust your project as suggested or do not submit a second proposal when your idea changes, you are unlikely to receive full credit for complexity.
  • +
+ +

If your initial project proposal is approved:

+ +
    +
  • Congrats! You can start working on your project. Note any questions (for resources, clarifications, or suggestions/advice on implementation) that you might have for your project TA/tutor, and bring them up during your proposal review session!
  • +
+ +

As you begin to code, you may feel the need to make adjustments to your project and features (often because of time constraints or unexpected complexity). This is perfectly okay! You don’t have to run the changes by your project TA/tutor to start implementing them, but we do recommend that you check in with any adjustments to ensure that you are still within complexity guidelines.

+

+ + + Submission + + +

+ + +You may submit more than once before the deadline; only the final submission will be graded. It is your responsibility to check that the autograder on Gradescope runs as expected after you upload your submission. + +
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/readings/index.html b/_site/readings/index.html new file mode 100644 index 0000000..c202cbd --- /dev/null +++ b/_site/readings/index.html @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Readings | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Readings + + +

+ + +

Readings will be discussed and due at the beginning of Discussion section every Thursday. Some of the ‘readings’ are videos, articles, journals, etc.

+ +

Week 2 Reading

+ +
    +
  • Required: Learning to Code
  • +
  • Discussion Question: Why is learning how to code important? Are you convinced about the importance of computer science in the world today? Include at least one point made in the video, ‘Code Stars’. (Expected length: 2 - 4 sentences).
  • +
+ +

Week 3 Reading

+ +
    +
  • Required: Introduction to Abstraction
  • +
  • Discussion Question: Why is a car a good example of abstraction? Using this example, give one reason why abstraction is helpful and then also give one reason why abstraction can do more harm than good. Finally, what is an example of abstraction in your daily life? (Expected length: 2 - 4 sentences).
  • +
+ +

Week 4 Reading

+ + + +

Week 5 Reading

+ + + +

Week 6 Reading

+ + + +

Week 7 Reading

+ + + +

Week 8 Reading

+ + +

Week 9 Reading

+ + + +

Week 10 Reading

+ + + +

Week 11 Reading

+ + + +

Week 12 Reading

+ + + + + + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/resources/index.html b/_site/resources/index.html new file mode 100644 index 0000000..1a05b3c --- /dev/null +++ b/_site/resources/index.html @@ -0,0 +1,580 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Resources | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Resources + + +

+ + +

Below, you can find various resources to help with your understanding of the material throughout the summer.

+

+ + + Lab Resources + + +

+ + + +

+ + + Content Guides and Videos + + +

+ + +

+ + + Python Resources + + +

+ + + +

+ + + Project Walkthroughs and Hint Videos + + +

+ + + +

+ + + Past Exams + + +

+ + + +

+ + + Exam Walkthroughs + + +

+ + +

+ + + Other + + +

+ +

EECS Incident Reporting Form

+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/robots.txt b/_site/robots.txt new file mode 100644 index 0000000..9f9a655 --- /dev/null +++ b/_site/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: http://localhost:4000/sp25/sitemap.xml diff --git a/_site/schedule.md b/_site/schedule.md new file mode 100644 index 0000000..c4c5dbd --- /dev/null +++ b/_site/schedule.md @@ -0,0 +1,1000 @@ + + + + +

+ Jump to Current Week +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 1 Mon 8/26
Tue 8/27 Lec 1. Logistics + Abstraction
+ (Recording 1)
+ (Slides 1)
+ (Lecture Quiz 1) +
Presemester Survey Released
Due (08/30)
Wed 8/28 Lec 2. Functions + Conditional Logic
+ (Recording 2)
+ (Slides 2)
+ (Lecture Quiz 2) +
Lab 1. Welcome to Snap!
Thu 8/29 Disc 1. Welcome to Snap!
Fri 8/30
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 2 Mon 9/2 NO CLASS (Holiday)
Tue 9/3 Proj 1: Worldle Released
Due (9/12)
Wed 9/4 Lec 3. Numbers + Abstraction
+ (Recording 3)
+ (Slides 3)
+ (Lecture Quiz 3) +
Lab 2. Build Your Own Blocks
Thu 9/5 Disc 2. Number Rep + Conditionals Reading: Week 2 Due
Fri 9/6
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 3 Mon 9/9 Lec 4. List, Scope, + HOFs
+ (Recording 4)
+ (Slides 4)
+ (Lecture Quiz 4)
Lab 3. Conditionals, Reporters, Testing
Tue 9/10 Proj 1: Worldle Due
Wed 9/11 Lec 5. Algorithms
+ (Recording 5)
+ (Slides 5)
+ (Lecture Quiz 5) +
Lab 4. Lists + HOFs
Thu 9/12 Disc 3. Data-types, Domain / Range, Scoping, Lists Reading: Week 3 Due
+ Proj 2: Worldle Released (due 9/26)
Fri 9/13
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 4 Mon 9/16 Lec 6. Algorithmic Complexity
+ (Recording 6)
+ (Slides 6)
+ (Lecture Quiz 6)
Lab 5. Algorithms
Tue 9/10
Wed 9/18 Lec 7. Quest Review
+ (Recording 7)
+ (Lecture Quiz 7) +
Lab 6. Algorithmic Complexity
Thu 9/19 Disc 4. HOFs + Quest Review Reading: Week 4 Due
Fri 9/20 Quest (from Sat to Sun)
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 5 Mon 9/23 Lec 8. Testing + 2048
+ (Recording 8)
+ (Slides 8)
+ (Lecture Quiz 8)
Lab 7. Testing + Proj 3
Tue 9/24
Wed 9/25 Lec 9. Social Implications of Computing: Computers in Education
+ (Recording 9)
+ (Slides 9)
+ (Lecture Quiz 9) +
No Lab Assignment:
Project Party 2 during lab
Thu 9/26 Disc 5. Algorithms Reading: Week 5 Due
+ Proj 2 Due
+
Fri 9/27 Quest Retake
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 6 Mon 9/30 Lec 10. Recursion I (Functional)
+ (Recording 10)
+ (Slides 10)
+ (Lecture Quiz 10)
Lab 8. Boards
Tue 10/1 Proj 3 Released (due 10/10)
Wed 10/2 Lec 11. Recursion II (Fractals)
+ (Recording 11)
+ (Slides 11)
+ (Lecture Quiz 11)
+ (Recursion Code) +
Lab 9. Trees & Fractals
Thu 10/3 Disc 6. Recursion Reading: Week 6 Due
Fri 10/4 Quest Retake
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 7 Mon 10/7 Lec 12. Dr. Kathy Yelick - Saving the World with Computing
+ (Recording 12)
+ (Slides 12)
+ (Lecture Quiz 12)
Proj 3 Party (no new lab)
Tue 10/8
Wed 10/9 Lec 13. Tree Recursion (Count Change)
+ (Recording 13)
+ (Slides 13)
+ (Lecture Quiz 13)
+ (Tree Recursion Code) +
Lab 10: Recursive Reporters
Thu 10/10 Disc 7. Tree Recursion Reading: Week 7 Due
+ Proj 3 Due
+ Project 4 Released (due 10/16)
Fri 10/10 Quest Retake
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 8 Mon 10/14 Lec 14. Higher-Order Functions
+ (Recording 14)
+ (Slides 14)
+ (Lecture Quiz 14)
Lab 11: HOFs and Functions as Data
Tue 10/15
Wed 10/16 Lec 15. Programming Paradigms
+ (Recording 15)
+ (Slides 15)
+ (Lecture Quiz 15) + (Lec 15. Code) +
Midterm Review + Practice Midterm
+ Practice Midterm
+ Practice Fractal
Proj 4 Due
Thu 10/17 Disc 8. Proj 4 Presentations Reading: Week 8 Due
Fri 10/18 Midterm
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 9 Mon 10/21 Lec 16. Intro to Python
+ (Recording 16)
+ (Slides 16)
+ (Lecture Quiz 16)
Lab 12. Welcome to Python
Tue 10/22
Wed 10/23 Lec 17. Data Types & Structures (Python II)
+ (Recording 17)
+ (Slides 17)
+ (Lecture Quiz 17) +
Lab 13. Data Structures in Python Final Proj Released
Thu 10/24 Disc 9. Intro to Python Reading: Week 9 Due
Fri 10/25 Midterm Retake
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 10 Mon 10/28 Lec 18. Linear Recursion (Python III)
+ (Recording 18)
+ (Slides 18)
+ (Lecture Quiz 18)
Lab 14. Linear Recursion
Tue 10/29
Wed 10/30 Lec 19. Tree Recursion & Game Theory (Python IV)
+ (Recording 19)
+ (Slides 19)
+ (Lecture Quiz 19) +
Lab 15. Tree Recursion Final Proj Prosposal Due
Thu 10/31 Disc 10. List Comprehension + Dictionaries Reading: Week 10 Due
Fri 11/1 Midterm Retake
+ Proj 5: Pyturis released
+ (due 11/14)
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 11 Mon 11/4 Lec 20. OOP (Python V)
+ (Recording 20)
+ (Slides 20)
+ (Demo Code)
+ (Lecture Quiz 20)
Lab 16. OOP in Python Proj 6: Final Project
Tue 11/5
Wed 11/6 Lec 21. HOFs in Python (Python VI)
+ (Recording 21)
+ (Slides 21)
+ (Lecture Quiz 21) +
Lab 17. Text Processing in Python
Thu 11/7 Disc 11: OOP + Python HOFs Proj 6: Final Project (due 12/6)
+ Reading: Week 11 Due
Fri 11/8 Midterm Retake
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 12 Mon 11/11 NO CLASS (Holiday)
Tue 11/12 Proj 5 Due
Wed 11/13 Lec 22. Concurrency + Parallelism
+ (Recording 22)
+ (Slides 22)
+ (Lecture Quiz 22) +
Lab 18. Concurrency + Parallelism
Thu 11/14 Disc 12: Concurrency + Review Reading: Week 12 Due
Fri 11/15 Postterm
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 13 Mon 11/18 Lec 23. Generative AI
+ (Recording 23)
+ (Slides 23)
+ (Lecture Quiz 23)
Catch Up + PostTerm Practice (No New Lab)
Tue 11/19
Wed 11/20 Lec 24. Ethics in AI
+ (Recording 24)
+ (Slides 24)
+ (Lecture Quiz 24) +
Lab 20. Data Science
Thu 11/21 Disc 13: Review Reading: Week 13 Due
Fri 11/22 Postterm Retake
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 14 Mon 11/25 Lec 25. Human-computer Interaction (HCI) - Guest
+ (Recording 25)
+ (Slides 25)
+ (Lecture Quiz 25)
Final Proj Party
Tue 11/26
Wed 11/27 NO CLASS (Holiday)
Thu 11/28 NO CLASS (Holiday)
Fri 11/29 NO CLASS (Holiday)
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 15 Mon 12/2 Lec 26. Alumni Panel
+ (Recording 26)
+ (Slides 26)
+ (Lecture Quiz 26)
Final Proj Party
Tue 12/3
Wed 12/4 Lec 27. Conclusion + Farewell
+ (Recording 27)
+ (Slides 27)
+ (Lecture Quiz 27)
Practice Postterm
Thu 12/5 Disc 14: Review Reading: Week 15 Due
Fri 12/6 Final Proj Due
+ Postterm Retake
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 16 Mon 12/9 NO CLASS (RRR Week)Postterm Retake
Tue 12/10 NO CLASS (RRR Week)Postterm Retake
Wed 12/11 NO CLASS (RRR Week)Postterm Retake
Thu 12/12 NO CLASS (RRR Week)Postterm Retake
Fri 12/13 NO CLASS (RRR Week)Postterm Retake
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateLectureLabDiscussionAssignment
Week 17 Mon 12/16 NO CLASS (Finals Week)Postterm Retake
Tue 12/17 NO CLASS (Finals Week)Postterm Retake
Wed 12/18 NO CLASS (Finals Week)Postterm Retake
Thu 12/19 NO CLASS (Finals Week)Postterm Retake
Fri 12/20 NO CLASS (Finals Week)Postterm Retake
diff --git a/_site/sitemap.xml b/_site/sitemap.xml new file mode 100644 index 0000000..1f4af0e --- /dev/null +++ b/_site/sitemap.xml @@ -0,0 +1,73 @@ + + + +http://localhost:4000/sp25/hw/hw01/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/labs/lab01/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/proj01/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/project1/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/project2/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/project3/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/project4/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/project5/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/project6-project/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/projects/project6-proposals/ +2025-01-16T15:32:45-08:00 + + +http://localhost:4000/sp25/announcements/ + + +http://localhost:4000/sp25/calendar/ + + +http://localhost:4000/sp25/discussion/ + + +http://localhost:4000/sp25/ + + +http://localhost:4000/sp25/lab_directory/ + + +http://localhost:4000/sp25/projects/ + + +http://localhost:4000/sp25/readings/ + + +http://localhost:4000/sp25/resources/ + + +http://localhost:4000/sp25/staff/ + + +http://localhost:4000/sp25/syllabus/ + + diff --git a/_site/staff/index.html b/_site/staff/index.html new file mode 100644 index 0000000..8d4d0d1 --- /dev/null +++ b/_site/staff/index.html @@ -0,0 +1,523 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Staff | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Staff + + +

+ + +

Add ‘berkeley.edu’ to the end of all emails.

+

+ + + Instructors + + +

+ + +
Teaching Professor Dan Garcia profile photo
+

+ + + Teaching Professor Dan Garciahe/him/his + + +

+

ddgarcia@

Office Hours: TBD in SODA-777

+ +

I’m just so delighted to be teaching the course again! I co-invented BJC in 2008 with my good friend and colleague Brian Harvey, and absolutely love teaching it. I’m passionate about bringing engaging and powerful CS “big ideas” to students who normally wouldn’t be exposed to it. I am humbled by all the national attention BJC has received (see the “in the News” part of my website) and hope you find this class beautiful and joyful! When I’m not working, you can find me traveling, playing golf or board games (e.g., Monopoly Deal), or binging shows (anything Pixar or Marvel) with my family. p.s. My wife and I both went to Cal for grad school… Go Bears!

+ +
+
+

+ + + Head Teaching Assistants + + +

+ + +
Stacey Yoo profile photo
+

+ + + Stacey Yooshe/hercs10@berkeley.eduDSP + + +

+

syoo3015@

Hello! I’m Stacey, a senior majoring in bioengineering. I took CS10 in Spring 2022 and have been involved with the team ever since. I’m thrilled to be returning as Head TA this Fall. CS10 was a great, friendly introduction to computer science at Berkeley, and it really helped me dive into the field with confidence. Outside of academics, I enjoy cooking, listening to music, and being creative. Feel free to reach out with any questions! :D

+ +
+
+ +
Victoria Phelps profile photo
+

+ + + Victoria Phelpsshe/hercs10@berkeley.eduDSP + + +

+

jedi_force@

Hello everyone! I’m thrilled to be your Head TA this semester. I currently work as an intern for a software company, SAP, the company that sponsors the programming language Snap!, which we’ll be using throughout the semester. My passion lies in research, particularly in software development and computer science (CS) education. When I first took this course, I had no programming experience, but I fell in love with it and became a dedicated advocate for CS10 and Snap!.

+ +

As a non-traditional student returning to school after a four-year gap, I firmly believe that anyone can learn CS. The field is open to everyone, regardless of age, skill level, or previous experience. My key piece of advice is to embrace failure as part of the learning process. Remember, not knowing something now doesn’t mean you won’t master it soon. I’m excited to share this journey with you and help you discover the world of computer science!

+ +
+
+

+ + + Tutors + + +

+ + +
Aanvi Kothari profile photo
+

+ + + Aanvi Kotharishe/her + + +

+

aanvi.kothari@

Hello! My name is Aanvi, I’m a junior majoring in CS. I took CS10 in Fall 2022 and it has been one of my favourite classes at Cal so far. I’m excited to be back on CS10 staff for a third semester! I genuinely enjoy solving problems, writing code and teaching. Outside of school, I find joy in golf and swimming. Hope to make you all love this class as much as I did.

+ +
+
+ +
Dream Lopez profile photo
+

+ + + Dream Lopezshe/her + + +

+

dreamlopez@

Hello everyone!! I’m a senior majoring in Data Science and Public Health. I took CS10 my first semester at Berkeley and it really helped my build confidence in my coding abilities! This is going to be my 7th semester with CS10! In my free time I love to read, hike, watch movies, find cute coffee shops, and bake. I look forward to meeting everyone and help you fall in love with CS <3

+ +
+
+ +
Harry Qian profile photo
+

+ + + Harry Qianhe/him + + +

+

harry.qian26@

Hi! I am a Junior majoring in Physics and a minor in EECS; I’ve been on the CS 10 staff team for a couple of semesters and I am very excited to meet you all. I’m from Rome, Italy, so if you have any questions about Italy, stop by and ask! I joined the class with ZERO experience in coding, and I left the class with enough skills to start my CS journey here at Cal. I hope to support you throughout the course!

+ + +
+
+ +
Marius Castro profile photo
+

+ + + Marius Castrohe/him + + +

+

mariuscastro@

Yo! My name is Marius and I’m a senior majoring in Applied Math and Computer Science. I took CS10 Spring 2022 and have been involved with the course on staff ever since. I’m pumped to see what this semester has for all of us! I came into Berkeley with no coding experience and I remember how my roommates (who were in 61A/B at the time) screens used to look like giberish while they did hw. I had no idea what CS was so I decided just to try it out by taking CS10. The class quickly became my favorite I’ve taken so far at Berkeley as it opened up the world of programming to me in a very beginner-friendly way. I hope to lend other students a hand in finding their way into Computer Science as a whole and maybe even find a passion like I did :)

+ +
+
+ +
Raka Litanto profile photo
+

+ + + Raka Litantohe/him + + +

+

jryl@

Hello! I’m Raka, a senior majoring in CS. I have been an AI and a reader before, and this is my third time being a UCS-1 for CS 10. Before coming into Berkeley, I had never coded before, but taking CS 10 opened my eyes to the wonderful world of Computer Science and really helped me for my future classes. I hope all of you can enjoy CS 10 as much as I did!

+ +
+
+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + + diff --git a/_site/syllabus/index.html b/_site/syllabus/index.html new file mode 100644 index 0000000..3af9ab4 --- /dev/null +++ b/_site/syllabus/index.html @@ -0,0 +1,1196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Syllabus | CS10 Spring 2025 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+
+ +

+ + + Syllabus + + +

+ +

+ + + Table of contents + + +

+ + +
    +
  1. Preface
  2. +
  3. Welcome
  4. +
  5. Platforms
  6. +
  7. Primary Course Components
      +
    1. Lecture
    2. +
    3. Lab Sections
    4. +
    5. Discussion Sections
    6. +
    7. Office Hours (OH)
        +
      1. General OH
      2. +
      3. Support OH
      4. +
      5. Instructor OH
      6. +
      +
    8. +
    9. Reading Quizzes
    10. +
    11. Projects
    12. +
    +
  8. +
  9. Projects and Deadlines
      +
    1. Project-Party Schedule
    2. +
    +
  10. +
  11. Exams
  12. +
  13. Exam Clobber Policy
  14. +
  15. Grading
      +
    1. General Grading Breakdown — Percentages
    2. +
    3. Specific Grading Breakdown — Points
    4. +
    5. Grading Bins
    6. +
    +
  16. +
  17. Extension Requests
      +
    1. Lab Extensions
    2. +
    3. Project Extensions
    4. +
    5. Lecture Quiz Extensions
    6. +
    7. Discussion Worksheet Extensions
    8. +
    +
  18. +
  19. Lateness Penalties
  20. +
  21. DSP Accommodations
  22. +
  23. Academic Integrity
      +
    1. Generative AI Policy
    2. +
    +
  24. +
  25. Diversity and Inclusion Statement
  26. +
  27. Academic Accommodations Hub
  28. +
  29. EECS Student Climate & Incident Reporting Form
  30. +

+ + +

+ + + Preface + + +

+ + +

All times below are in PST. If you have any questions, please make an EdStem post (rather than emailing) or come to office hours.

+

+ + + Welcome + + +

+ + +

Welcome to CS10: The Beauty and Joy of Computing!

+We’re really excited to have you on board with us this semester for a gentle, but thorough introduction to Computer Science. Our course will start out in the block-based language Snap!, but will transition into Python once you’ve learned some fundamentals of programming. By the end of the course, we hope you’ll walk away with a deeper understanding of the ideas that have come to define computer science, the ability to build your own programs, and the confidence to apply these skills in whichever field you choose to pursue.

+

+ + + Platforms + + +

+ + +

This semester, CS10 will run fully in-person. Consequently, remote (or hybrid) students can not be supported. However, there are make-up options for lecture, lab, and discussion attendance.

+ +
    +
  • Course Website: The day-to-day happenings of the course (and links to all the platforms below) can be found at cs10.org. Consult the daily schedule to find the times/locations for all synchronous course engagements.
  • +
  • Edstem: This will be our main Q&A platform, where you can ask (and answer) questions, see announcements, and read Weekly Blasts, which are required readings in CS10. Click the Ed Discussion tab on the left to navigate to Edstem. Here is the link to the EdStem
  • +
  • Gradescope: This is where you will submit Projects 1-4, and the Final Project. Click the Gradescope tab on the left to open Edstem. Submission instructions can be found at the following: Gradescope.
  • +
  • Bcourses: Lecture recordings can be found on the Bcourses site, generally within 48h of lecture. You will have to be logged into your Berkeley email to access the recordings. The recordings are under the “Media Gallery” tab in Bcourses.
  • +
  • IClicker: You are required to create a free iClicker account and download the free iClicker app. Then, you should signup with your Berkeley email. To get credit for attending lecture, please open the app once you’re seated in the lecture hall and mark your attendance. If for some reason you are not enrolled, use this the following links: + +
  • +
  • PrairieLearn: This is the platform you will use to take exams (Quest, Midterm, and Postterm)
  • +
  • Snap!: The programming language we will be using for more than half the semester. The website can be found here: Snap!
  • +
  • Gradeview: This is the website where you will be able to access your current grades in the class. You will need to sign-in using your UC Berkeley credentials on the Gradeview website.
  • +
+

+ + + Primary Course Components + + +

+ + +

+

+ + + Lecture + + +

+ + +

Lectures will be live and in-person in Hearst Field Annex, Room A1 Mondays and Wednesdays, from 1PM to 2PM. They will be recorded, and recordings will be posted on Bcourses (see platforms section).

+ +

Lectures aim to introduce concepts and provide a “big-picture view” of material from a theoretical standpoint. Most lectures will be live and in person. However, some lectures may be pre-recorded, which you can watch on your free time, and there will be an assignment that corresponds to it to test your conceptual understanding. Attendance for these days will be through the “Lecture Quiz” solely (and no iClicker is needed for those days).

+ +

Attendance is required, and credit for attending will be through the iClicker app. If you cannot attend lecture, you will need to complete the corresponding “Lecture Quiz” on Gradescope for attendance credit. The corresponding lecture quiz will be due on Gradescope the day of the following lecture at 2359hrs. On this quiz, we will ask questions about lecture content. You may fill out our general extension form (linked below) to receive an automatic extension for lecture quizzes.

+ +

Your lowest 3 lecture-quiz scores will be automatically dropped — so you can miss up to 3 lectures (or skip 3 quizzes) without penalty, and you don’t need to inform us when you miss class. These drops are not intended to be “free-passes” to skip lectures: please reserve them for unexpected emergencies / sickness / … since missing out on content will only disrupt your learning. If there are extenuating circumstances which cause you to miss more than 3 lectures (like prolonged sickness, family emergencies, etc.) then you should visit Support OH.

+

+ + + Lab Sections + + +

+ + +

Labs will be held synchronously and are the primary place you will learn to program. Note that you are strongly recommended to complete all labs with a partner, and that partner-matching threads have been added to our Edstem Forum. On the first day of lab, Teaching Assistants (TAs) will help you find a partner in your assigned lab section. Labs will be located in Soda Hall, Room 438.

+ +

Lab assignments will be submitted to Gradescope. There will be two assignments for each lab: one wherein you’ll submit the code you wrote, and one with conceptual checkoff problems. If you get a full score on both Gradescope assignments, you will get credit for that lab. Labs are graded on an all-or-nothing basis, which means if you don’t get a full score on either (or both) of the two assignments, then you won’t get credit for that lab. In our lab sections, TAs and Tutors will be available to help you with the problems.

+ +

Lab X will be due the day that Lab X+1 is scheduled, at midnight. That is, each lab is due at midnight on the day that the next lab is released. For example, if Lab-12 is scheduled on Tuesday, and Lab-13 is scheduled on Thursday, then Lab-12 will be due at midnight on Thursday. There will be 18 (unconfirmed) graded labs (there’s no submission or credit for lab-1), and your lowest 2 lab scores will be dropped.

+ +

Attendance to lab sections are required and part of your grade. You can miss up to 3 lab sections without penalty so you do not need to inform us when you cannot attend lab. If there are extenuating circumstances which cause you to miss more than 5 lab sections (like prolonged sickness, family emergencies, etc.) then you should visit Support OH. Please note, the 3 “skip days” for lab sections only applies to attendance. You are still required to complete and submit the lab assignment. Lab attendance will be tracked through a Google form.

+ +

If you cannot attend a lab section, then the lab will be due before the start of the next lab. So if you either cannot reguarly attend lab, or if you miss a day, the lab will be due earlier. For example, if Lab X is due on Tuesday at 11:59PM, but you did not attend lab in-person; then, the deadline for you to submit Lab X is Tuesday at 3PM (the time before the lab section).

+

+ + + Discussion Sections + + +

+ + +

Discussion sections are where you will delve into the content more deeply with worksheets in traditional “pen-and-paper” style. This is where you will develop the theoretical computational skills needed to understand the basics of programming and to prepare for our exams. Discussion will be located in Evans Hall, Room 60.

+ +

Discussion attendance is mandatory. If you attend, then we will check you off in person, and there is no further action needed to receive credit other than your participation during discussion. If you do not attend (either you have a regular conflict or just miss a few classes), then you can make-up the entire attendance credit by submitting the discussion worksheet (just the required portions) to Gradescope. You must complete the entire required portions of the worksheet to receive credit. Worksheets will be graded on completion and honest effort. Discussions will also be recorded, so we recommend watching the recordings to get help with the worksheet problems.

+ +

The discussion worksheets are located on the website, and you will submit them to Gradescope. You can submit the worksheet in any format, i.e. handwritten, electronically written, typed, etc. Discussion worksheets are due the day of the next discussion section at 11:59 PM. So, if Discussion X is due when Discussion X + 1 is released.

+ +

Your two lowest discussion worksheet scores / misses will be dropped. This means you can not submit two worksheets and still get full credit in your discussion grade. Please reserve these drops for unexpected emergencies / sickness / etc. You do not need to contact us if you miss or do not attend discussion. If you need an extension, please see the extension request section.

+ +

From experience, we’ve observed that students who regularly attend and pay attention in discussions tend to do better on exams.

+

+ + + Office Hours (OH) + + +

+ + +

There will be three kinds of OH, described bellow. The times and locations for all OH are all posted under the ‘daily schedule’ tab on the course website. You don’t need to email / obtain an appointment. You can attend any and all OH that work for you (i.e. you don’t just have to attend your TA’s OH.)

+

+ + + General OH + + +

+ + +

General OH is intended for any course and content related questions. Here, you can get help with your code, debugging, understanding something conceptually, getting started on assignments, etc. General OH will be located in Soda-326

+

+ + + Support OH + + +

+ + +

These are intended for students to discuss their status in their class, catching up, discussing extenuating circumstances, requesting extensions, getting additional support, etc. Support OH is NOT for content related questions. So if you have questions about content, we will redirect you to General OH or Instructor OH

+

+ + + Instructor OH + + +

+ + +

Professor Garcia will be hosting Instructor OH (1 to 2PM on Fridays), which you may attend for more conceptual help (for instance, if you’re confused about some topic, or want to go over practice problems) or to discuss more general topics (e.g. college advice or how you’re doing in the class.) For help with specific assignments (labs and projects), you should attend Staff-OH.

+

+ + + Reading Quizzes + + +

+ + +

These are short assigned readings each week. We will discuss them as a class during discussion section. They are required reading, and you will answer the questions on the discussion worksheets pertaining to the readings.

+

+ + + Projects + + +

+ + +

These assignments will be one of the best ways for you to apply what you have learned in lecture, lab, and discussion. These will be a bit more time intensive than the other assignments and will require you to be caught up on the other components of the course.

+ +
    +
  • There will be 3 Snap! projects, 1 Python project, 1 research-based project, and 1 project wherein you can use a language of your choice to build something of your choice. The number of points per project is listed in the Grading Breakdown. Project specs will be released on the website and on Edstem, and you should always read them before starting to work on a project.
  • +
+

+ + + Projects and Deadlines + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProjectSubmission Deadline
Project 1: Wordle™-liteWed 2/05
Project 2: Spelling-BeeMon 2/24
Project 3: 2048Mon 3/17
Project 4: Explore PostMon 3/31
Project 4: Explore Post Feedback + CommentsFri 4/11
Project 5: Final Project PorposalsMon 4/07
Project 5: Final ProjectMon 5/05
+ +

All deadlines are at 11:59PM.

+ +
    +
  • Project Parties: These will serve as specialized OH wherein you’ll be able to work with your peers (within the limits of our collaboration policies) and seek assistance from course-staff on whatever project is currently assigned. We strongly encourage you to attend project parties as they will help you finish your assignments on time. Project Parties will run on Mondays (6-9PM) and Fridays (6/23) on most weeks. Here’s a detailed schedule:
  • +
+

+ + + Project-Party Schedule + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeekDateTimeLocation
Project 1TUE 9/103-5PMSoda-438 (Woz)
Project 2WED 9/255-9PMMoffit-145
Project 3MON 10/75-9PMMoffit-145
Project 5TUE 11/123-6PMSoda-326
Project 5MON 11/143-6PMSoda-326
Project 6MON 11/255-9PMMoffit-145
Project 6MON 12/25-9PMMoffit-145
+

+ + + Exams + + +

+ + +

There will be three take-home, untimed, online, 48-hour, open-note exams (Quest, Midterm, and Postterm):

+
    +
  • Quest
  • +
  • Midterm
  • +
  • Postterm (final)
  • +
+ +

Here are the specific dates for exams, although these dates may change.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExamReleaseDue
Quest 1Sat 2/08Sun 2/09
Quest 2Sat 2/15Sun 2/16
Quest 3Sat 2/22Sun 2/23
Midterm 1Sat 3/15Sun 3/16
Midterm 2Sat 3/22Sun 3/23
Midterm 3Sat 4/05Sun 4/06
Postterm 1Sat 4/19Sun 4/20
Postterm 2Sat 4/26Sun 4/27
Postterm 3Sat 5/03Sun 5/04
+ +

You will see various exams (for example, Quest 1, 2 3, etc.) Each exam type (Quest, Midterm, Postterm) has three exams. The purpose of this is to allow you to retake the exam (it will be a simliar but different exam each time), and earn credit on questions you missed in the previous exam. Quest 1, Midterm 1, and Postterm 1 are all mandatory; however, each retake is optional.

+ +

Note that on a retake exam, you only need to re-do the problems you did not receive full credit on. For instance, suppose you got full credit on Question-3 but lost points on Question-5, you could only redo Question-5.

+ +

Moreover, we will keep your question-wise maximum score between the original Quest and the retake, for each problem. For instance, suppose you re-took question 5 but scored lesser points, we’ll just keep your score from the original Quest instead!

+ +

The best way to prepare is to utilize the practice exams posted under resources and the practice exams we’ll release on PrairieLearn.

+ +

If you are an incomplete student, remember that you can only take the first exams (Quest 1, Midterm 1, and Postterm 1).

+

+ + + Exam Clobber Policy + + +

+ +

If your percentage score on a latter exam is higher than your percentage score on a prior exam, then we’ll replace your percentage score on the prior exam with the percentage score on the latter exam. The clobber can never hurt your grade: if you score lower, no replacement will be done.

+

+ + + Grading + + +

+ +

+ + + General Grading Breakdown — Percentages + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ComponentPercentage Weighting
Attendance / Participation6.25%
Labs20%
Projects36.25%
Quest6.25%
Midterm12.5%
Final Exam18.75%
+

+ + + Specific Grading Breakdown — Points + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ComponentPoints
Quest25
Midterm50
Postterm75
Project 1: Wordle™-lite10
Project 2: Spelling-Bee25
Project 3: 204835
Project 4: Explore15
Final Project60
Labs80
Attendance / Participation25
+ +

Total: 400 Points

+

+ + + Grading Bins + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Letter GradeRange
A+485-500
A460-484
A-450-459
B+440-449
B420-439
B-400-419
C+375-399
C360-374
C-350-359
D300-349
F0-299
+ +

Your total points will be rounded to the nearest integer when we compute letter grades. 0.5 will round to 1, but 0.49 will round to 0. We will not shift the bins / curve the class / ooch or round your grade beyond the listed rounding scheme, so please don’t ask.

+

+ + + Extension Requests + + +

+ + +

For all extension requests on any assignment, please use the Extension Request Form.

+ +

You’re also allowed to retroactively obtain extensions without penalty: i.e., you can obtain an extension even after the deadline of a lab/project, but not after the extended deadline for that assignment. The extended deadline for labs, as noted above, is the day that the next lab is scheduled, at 2359 hrs; for projects, it’s 72h after the original deadline.

+ +

NOTE: If you added the course late, please use your updated deadline as the ‘original due date’.

+ +

Important: While extensions may not be visible on PrairieLearn/Gradescope (a.k.a your assignments may be marked as ‘Late’), they will be factored in when we compute your final grade. Extensions are AUTO-approved after filling in the form.

+

+ + + Lab Extensions + + +

+ + +

We understand that circumstances may arise that may cause you to not be able to meet assignment deadlines.

The policy for extension requests on labs are as follows:

+ +
    +
  • An extension request will grant you an extra lab section in order to complete the lab assignment without any lateness penalties. For instance, if you ask for an extension on lab-12, which is generally due on the day that lab-13 is scheduled, then it will now be due the day that lab-14 is scheduled. So, if you are getting an exttension on Lab X, then the new deadline for Lab X is when Lab X + 2 is released at 11:59PM. However, if you are trying to obtain lab attendance credit, then it is due by 5PM when Lab X + 2 is released.
  • +
+

+ + + Project Extensions + + +

+ + +

The policy for project extension requests on projects are as follows:

+ +
    +
  • An extension request will automatically extend your project submission deadline by 72 hours without any lateness penalties. For instance, if a project is due by Monday at midnight, then the project will now be due by Thursday at midnight.
  • +
+

+ + + Lecture Quiz Extensions + + +

+ + +
    +
  • An extension request will automatically extend your lecture quiz submission deadline and will be due the day of the following lecture at 11:59PM. For example, if the lecture quiz was due on Monday, with the extension, it is now due on Wednesday. Similar to the Lab extension and deadline policy, the Lecture Quiz, with the extension is due when Lecture Quiz X + 2 is released.
  • +
+

+ + + Discussion Worksheet Extensions + + +

+ + +
    +
  • An extension request will automatically extend your discussion worksheetsubmission deadline and will be due the day of following discussion section at 11:59PM. For example, if the worksheet was due on 9/5, it is now due on 9/12.
  • +
+

+ + + Lateness Penalties + + +

+ + +

Any labs or projects that are submitted late will receive half-credit, regardless of how late the submission is. For the project-4 and the final project, late submissions may not be graded since our grading staff has limited availability. If you need an extension, please utilize the extension request forms. No extensions are provided for Reading Quizzes, and late submissions are not graded.

+ +

If, after exhausting the initial extension, you still need more time — please visit us in Support-OH, wherein we’ll help you come up with a plan to catch up! Lateness penalties only apply if you don’t obtain an extension (by filling out the form or visiting Support-OH) and turn in work late.

+

+ + + DSP Accommodations + + +

+ + +

If you have a DSP accommodation through the university, please be sure to submit your official letter through the DSP portal. Once you have done so, we will be able to accommodate you. If you have an accommodation but are unable to promptly submit the letter for whatever reason, please reach out to Victoria jedi_force@.

+ +

UC Berkeley is committed to creating a learning environment that meets the needs of its diverse student body including students with disabilities. If you anticipate or experience any barriers to learning in this course, please feel welcome to discuss your concerns with me.

+ +

If you have a disability, or think you may have a disability, you can work with the Disabled Students’ Program (DSP) to request an official accommodation. The Disabled Students’ Program (DSP) is the campus office responsible for authorizing disability-related academic accommodations, in cooperation with the students themselves and their instructors. You can find more information about DSP, including contact information and the application process here: dsp.berkeley.edu. If you have already been approved for accommodations through DSP, please meet with me so we can develop an implementation plan together.”

+ +

Students who need academic accommodations or have questions about their accommodations should contact DSP, located at 260 CĂŠsar ChĂĄvez Student Center. Students may call 642-0518 (voice), 642-6376 (TTY), or e-mail dsp@berkeley.edu(link sends e-mail)

+

+ + + Academic Integrity + + +

+ + +

Let’s get honest about being honest. It is truly a disappointment to catch students cheating. All we really want is for you to learn the material- and as both current and former students, we understand that oftentimes, juggling various assignment deadlines while keeping up with material can be stressful. If you feel overwhelmed in this class, reach out! We are here to support you.

+ +

Here, we will lay out our academic integrity policies which can help you distinguish between cheating (prohibited) and collaboration (encouraged.)

+

+ + + Generative AI Policy + + +

+ + +

In this course, generative AI tools (e.g., ChatGPT, Copilot) are permitted solely as aids for enhancing your understanding of challenging concepts, but should not be used to produce answers, generate code, or verify solutions. Generative AI may only support conceptual growth, helping you explore topics that need further clarification.

+ +

Misuse of generative AI to obtain answers or complete assignments violates academic integrity and course standards, as all submitted work must reflect your own understanding and effort. This policy ensures AI serves as a tool for your learning without compromising the integrity of the course objectives and assessments.

+ +

What constitutes cheating?

+ +
    +
  • Copying part or all of another student’s project code with the exception of your partner(s) assuming that the project you are working on allows for partnered work. This includes students from previous semesters (we still have their code and will know if you do this).
  • +
  • Sharing or receiving the exact steps used to solve a project problem (even if code is not explicitly sent).
  • +
  • Copying part or all of another student’s exam answers.
  • +
  • Collaborating with another student when taking exams by receiving or giving assistance of any kind.
  • +
  • Copying code from online sources.
  • +
+ +

What constitutes collaboration?

+ +
    +
  • Asking instead of telling. If you’re working with your friends and one of them is stuck on a part of an assignment, try to ask them guiding questions instead of telling them the answer.
  • +
  • Keeping things conceptual! It’s more beneficial to your learning if you come up with a solution yourself, rather than having it told to you. This also applies if you are helping someone else. +We highly encourage collaboration, so let’s define what that means. Discussing approaches to problems is fine (in fact, we actively encourage it), as long as you eventually arrive at a good enough understanding of the problem that you are able to code the solution completely by yourself. You should not allow concerns about cheating to get in the way of discussing the class material with your classmates. It is okay if you have received some help with ideas along the way (but not a fully worked out solution).*
  • +
+ +

*This policy was adapted from Professor Alistair Sinclair’s policy for CS 172.

+ +

What happens if you cheat?

+ +

We take cheating extremely seriously, and will almost always pursue the strictest consequences available to us. We have advanced cheating detection software, and will routinely run this to detect cheating. These are sophisticated tools that are pretty hard to fool- any attempts to obfuscate your code to avoid detection will likely fail, and instead may result in additional consequences.

+ +

Note that you will always have a chance to explain your actions before any action is taken. If you admit that you cheated, we will apply the necessary sanctions. If you’d like to meet with us to discuss your situation, we’ll set up a meeting. Afterwards, if staff determines that you cheated and you don’t agree with that decision, we’ll proceed with a Student-Conduct Investigation.

+ +

What are the sanctions?

+ +

On projects / other assignments, the minimum penalty is negative points on that assignment alongside a referral to the Office of Student Conduct. For repeated / more egregious offences, we may grant a failing grade in the class.

+ +

On exams, we will be absolutely unforgiving. Any instance of cheating results in an immediate F in the class alongside a referral to the Office of Student Conduct.

+ +

If at any point in the academic-integrity process, a student lies or attempts to mislead course-staff —thereby wasting everyone’s time— then in addition to the aforementioned sanctions, the s will write a recommendation for the student’s dismissal and submit it to the Office of Student Conduct.

+

+ + + Diversity and Inclusion Statement + + +

+ + +

We recognize that Computer Science is a demographically skewed field in the United States, and that even at Berkeley, minoritized students can find themselves feeling alone. It is our goal in this course to deliver an equitable learning experience for everyone involved. Concretely, this means a few things:

+
    +
  • In addition to teaching the technical skills necessary for programming, we will also teach the social implications of computer science. In doing so, we will directly address the contributions of underrepresented groups to the field, which are often overlooked.
  • +
  • We will do our absolute best to show you that while bias, discrimination, and judgment still exist, they should not stand in the way of you learning Computer Science. While acknowledging the struggles many students may face, we also hope to show that computer science is a field anyone can be successful in (in other words, there is no innate “talent” or “trait” required to understand computer science). Of course, different people have different opportunities, but one of the goals of CS10 is to equalize the playing field.
  • +
  • Discrimination or disrespect on the basis of race, ethnicity, religion, socioeconomic status, ability, gender, or sexual orientation will not be tolerated under any circumstances. Should someone make you feel uncomfortable or disrespected in any way, please let the instructor know immediately.
  • +
+

+ + + Academic Accommodations Hub + + +

+ + +

Here’s a link to the Academic Accommodations Hub.

+

+ + + EECS Student Climate & Incident Reporting Form + + +

+ + +

It is very important to the EECS Department that every student in the EECS community feels safe, respected and welcome. We recognize though that incidents happen, sometimes unintentionally, that run counter to that goal. +The EECS department provides a secure and anonymous Incident Reporting Form that can be used to report incidents including (but not limited to) microaggressions, discrimination, marginalizing / alienating behaviour, etc.

+ + + + +
+ + +
+ + + +
+
+ + + +
+ + +
+ + + + +