From 15b5f649b3c87453f73a311231d4b53697ae3730 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 14 Nov 2019 22:34:33 -0600 Subject: [PATCH] Added multiple ongoing competitions (HUGE CHANGE) --- codebox/app/app.moon | 25 +++++++++++-------- .../controllers/account/join_competition.moon | 9 +++++-- codebox/controllers/account/register.moon | 4 +-- .../controllers/admin/competition/edit.moon | 2 ++ .../{activate.moon => toggle_active.moon} | 6 ++--- codebox/controllers/admin/utils/score.moon | 5 ++-- codebox/controllers/competition/Tupfile | 1 + codebox/controllers/competition/list.moon | 12 +++++++++ codebox/controllers/controller.moon | 2 +- .../controllers/executer/status_update.moon | 1 + codebox/controllers/leaderboard/update.moon | 2 +- codebox/controllers/leaderboard/view.moon | 2 +- codebox/controllers/problem/problem.moon | 2 +- codebox/controllers/problem/submit.moon | 2 +- codebox/controllers/submission/list.moon | 2 +- codebox/middleware/competition_active.moon | 7 ++++++ codebox/middleware/competition_started.moon | 4 +-- codebox/middleware/during_competition.moon | 2 +- codebox/middleware/joined_competition.moon | 2 +- codebox/migrations.moon | 3 +++ codebox/models/jobs.moon | 1 + codebox/services/scoring.moon | 13 +++++++--- codebox/static/coffee/problem_submit.coffee | 4 ++- .../static/coffee/submission_reloader.coffee | 3 ++- codebox/static/css/core.css | 2 +- codebox/static/css/core.css.map | 2 +- codebox/static/js/problem_submit.js | 5 ++-- codebox/static/js/problem_submit.js.map | 4 +-- codebox/static/js/submission_reloader.js | 6 +++-- codebox/static/js/submission_reloader.js.map | 4 +-- codebox/static/scss/_utils.scss | 5 ++++ codebox/static/scss/core.scss | 6 +++++ codebox/utils/binding.moon | 6 ++--- codebox/views/admin/competition.moon | 2 +- codebox/views/admin/competition/edit.moon | 14 +++++++---- codebox/views/competition/join.moon | 2 +- codebox/views/competition/list.moon | 23 +++++++++++++++++ codebox/views/partials/navbar.moon | 11 +++++--- codebox/views/partials/problem_sidebar.moon | 4 +-- codebox/views/problem/problem.moon | 8 ++++-- codebox/views/ssr/job_result.moon | 5 ++-- codebox/views/submission/list.moon | 2 +- docs/todo | 7 +++--- 43 files changed, 162 insertions(+), 72 deletions(-) rename codebox/controllers/admin/competition/{activate.moon => toggle_active.moon} (80%) create mode 100644 codebox/controllers/competition/Tupfile create mode 100644 codebox/controllers/competition/list.moon create mode 100644 codebox/middleware/competition_active.moon create mode 100644 codebox/views/competition/list.moon diff --git a/codebox/app/app.moon b/codebox/app/app.moon index a2c6833..5078499 100644 --- a/codebox/app/app.moon +++ b/codebox/app/app.moon @@ -32,30 +32,33 @@ class extends lapis.Application @scripts = {} @raw_scripts = {} - ['index': "/"]: => redirect_to: @url_for 'problem' + ['index': "/"]: => redirect_to: @url_for 'competition' ['account.login': "/login"]: controller "account.login" ['account.logout': "/logout"]: controller "account.logout" ['account.register': "/register"]: controller "account.register" ['account.account': "/account"]: controller "account.account" - ['join_competition': '/join']: controller "account.join_competition" + ['competition': '/competitions']: controller "competition.list" + ['join_competition': '/:competition_name/join']: controller "account.join_competition" - ['leaderboard': '/leaderboard']: controller "leaderboard.view" - ['leaderboard.update': '/leaderboard/update']: controller "leaderboard.update" + ['leaderboard': '/:competition_name/leaderboard']: controller "leaderboard.view" + ['leaderboard.update': '/:competition_name/leaderboard/update']: controller "leaderboard.update" - ['problem': '/problems']: controller "problem.problem" - ['problem.description': '/problems/:problem_name']: controller "problem.problem" - ['problem.submit': '/problems/:problem_name/submit']: controller "problem.submit" + ['problem': '/:competition_name/problems']: controller "problem.problem" + ['problem.description': '/:competition_name/problems/:problem_name']: controller "problem.problem" + ['problem.submit': '/:competition_name/problems/:problem_name/submit']: controller "problem.submit" - ['submission.list': '/submissions']: controller "submission.list" - ['submission.view': '/submissions/view']: controller "submission.view" - ['submission.status': '/submissions/status']: controller "submission.status" + ['submission.list': '/:competition_name/submissions']: controller "submission.list" + ['submission.view': '/:competition_name/submissions/view']: controller "submission.view" + ['submission.status': '/:competition_name/submissions/status']: controller "submission.status" + -- Executer callbacks ---------------------------------- ['executer.status_update': "/executer/status_update"]: controller "executer.status_update" ['executer.request': '/executer/request']: controller "executer.request" ['executer.force_rescore': '/executer/force_rescore']: controller "executer.force_rescore" + -- Admin ------------------------------------------------ ['admin': "/admin"]: => redirect_to: @url_for "admin.user" ['admin.user': "/admin/users"]: controller "admin.user" @@ -82,7 +85,7 @@ class extends lapis.Application ['admin.competition.delete': "/admin/competitions/delete/:competition_id"]: controller "admin.competition.delete" ['admin.competition.add_problem': "/admin/competitions/add_problem"]: controller "admin.competition.add_problem" ['admin.competition.delete_problem': "/admin/competitions/delete_problem"]: controller "admin.competition.delete_problem" - ['admin.competition.activate': "/admin/competitions/activate/:competition_id"]: controller "admin.competition.activate" + ['admin.competition.toggle_active': "/admin/competitions/toggle_active/:competition_id"]: controller "admin.competition.toggle_active" ['admin.competition.remove_user': "/admin/competitions/remove_user"]: controller "admin.competition.remove_user" ['admin.utils.score': "/admin/score"]: controller "admin.utils.score" diff --git a/codebox/controllers/account/join_competition.moon b/codebox/controllers/account/join_competition.moon index 9ab62a3..54c3ad9 100644 --- a/codebox/controllers/account/join_competition.moon +++ b/codebox/controllers/account/join_competition.moon @@ -1,3 +1,4 @@ +import assert_valid from require "lapis.validate" import make_controller from require "controllers.controller" import Competitions, CompetitionUsers from require 'models' @@ -8,11 +9,15 @@ make_controller middleware: { 'logged_in' } get: => - @competition = Competitions\find active: true + assert_valid @params, { + { "competition_name", exists: true } + } + + @competition = Competitions\find short_name: @params.competition_name CompetitionUsers\create user_id: @user.id competition_id: @competition.id @executer\rescore! - return redirect_to: @url_for 'index' + return redirect_to: @url_for 'leaderboard', { competition_name: @competition.short_name } diff --git a/codebox/controllers/account/register.moon b/codebox/controllers/account/register.moon index 34fa808..aa2d8ca 100644 --- a/codebox/controllers/account/register.moon +++ b/codebox/controllers/account/register.moon @@ -11,7 +11,7 @@ make_controller middleware: { 'logged_out' } get: => - @flow 'csrf_validate' + @flow 'csrf_setup' render: 'account.register' post: capture_errors => @@ -43,8 +43,6 @@ make_controller table.insert @errors, 'Error creating account' return render: 'account.register' - @scoring\rescore_everything! - @session.user_id = user_id redirect_to: @url_for 'index' diff --git a/codebox/controllers/admin/competition/edit.moon b/codebox/controllers/admin/competition/edit.moon index 519aa01..61713d1 100644 --- a/codebox/controllers/admin/competition/edit.moon +++ b/codebox/controllers/admin/competition/edit.moon @@ -48,6 +48,7 @@ make_controller { "programming_points", exists: true } { "codegolf_points", exists: true } { "word_points", exists: true } + { "short_name", exists: true } } @comp = Competitions\find @params.id @@ -62,6 +63,7 @@ make_controller programming_points: @params.programming_points codegolf_points: @params.codegolf_points word_points: @params.word_points + short_name: @params.short_name } @comp\refresh! diff --git a/codebox/controllers/admin/competition/activate.moon b/codebox/controllers/admin/competition/toggle_active.moon similarity index 80% rename from codebox/controllers/admin/competition/activate.moon rename to codebox/controllers/admin/competition/toggle_active.moon index 4fec66e..234f43e 100644 --- a/codebox/controllers/admin/competition/activate.moon +++ b/codebox/controllers/admin/competition/toggle_active.moon @@ -16,10 +16,10 @@ make_controller unless comp yield_error "Competition not found" - db.query 'UPDATE competitions SET active=FALSE WHERE 1=1;' + -- db.query 'UPDATE competitions SET active=FALSE WHERE 1=1;' comp\update { - active: true + active: not comp.active } - redirect_to: @url_for "admin.competition" \ No newline at end of file + redirect_to: @url_for "admin.competition" diff --git a/codebox/controllers/admin/utils/score.moon b/codebox/controllers/admin/utils/score.moon index 9b359e0..e336be6 100644 --- a/codebox/controllers/admin/utils/score.moon +++ b/codebox/controllers/admin/utils/score.moon @@ -1,4 +1,5 @@ import make_controller from require "controllers.controller" +import Competitions from require "models" make_controller inject: @@ -7,8 +8,6 @@ make_controller middleware: { 'logged_in', 'admin_required' } get: => - @scoring\setup_scoring_tables! - @scoring\score_all! - @scoring\place! + @scoring\rescore_everything! return json: 'Scored all users' diff --git a/codebox/controllers/competition/Tupfile b/codebox/controllers/competition/Tupfile new file mode 100644 index 0000000..f0fe651 --- /dev/null +++ b/codebox/controllers/competition/Tupfile @@ -0,0 +1 @@ +include_rules diff --git a/codebox/controllers/competition/list.moon b/codebox/controllers/competition/list.moon new file mode 100644 index 0000000..8777b09 --- /dev/null +++ b/codebox/controllers/competition/list.moon @@ -0,0 +1,12 @@ +import make_controller from require "controllers.controller" +import capture_errors_json, yield_error from require 'lapis.application' +import assert_valid from require "lapis.validate" +import Competitions from require 'models' + +make_controller + middleware: { 'logged_in' } + + get: capture_errors_json => + @competitions = Competitions\select "where active = ?", true + + render: 'competition.list' diff --git a/codebox/controllers/controller.moon b/codebox/controllers/controller.moon index a62ad4e..a9b1533 100644 --- a/codebox/controllers/controller.moon +++ b/codebox/controllers/controller.moon @@ -6,7 +6,7 @@ import respond_to from require "lapis.application" before: => if routes.inject for inj, dep in pairs routes.inject - @[inj] = @app.bind\make dep + @[inj] = @app.bind\make dep, @ if routes.scripts for s in *routes.scripts diff --git a/codebox/controllers/executer/status_update.moon b/codebox/controllers/executer/status_update.moon index 6b402fe..650e39b 100644 --- a/codebox/controllers/executer/status_update.moon +++ b/codebox/controllers/executer/status_update.moon @@ -30,6 +30,7 @@ make_controller } if status.status != Jobs.statuses.running + @scoring\initialize job.competition_id @scoring\score job.user_id, job.problem_id @scoring\place! diff --git a/codebox/controllers/leaderboard/update.moon b/codebox/controllers/leaderboard/update.moon index 59efe8d..a1f51fa 100644 --- a/codebox/controllers/leaderboard/update.moon +++ b/codebox/controllers/leaderboard/update.moon @@ -3,7 +3,7 @@ Leaderboard = require 'views.ssr.leaderboard' make_controller layout: false - middleware: { 'logged_in', 'competition_started' } + middleware: { 'logged_in', 'competition_started', 'competition_active' } get: => @placements = @competition\get_leaderboard! diff --git a/codebox/controllers/leaderboard/view.moon b/codebox/controllers/leaderboard/view.moon index b5f59db..dd49116 100644 --- a/codebox/controllers/leaderboard/view.moon +++ b/codebox/controllers/leaderboard/view.moon @@ -4,7 +4,7 @@ import capture_errors, capture_errors_json, yield_error from require 'lapis.appl import LeaderboardProblems, LeaderboardPlacements from require 'models' make_controller - middleware: { 'logged_in', 'competition_started' } + middleware: { 'logged_in', 'competition_started', 'competition_active' } scripts: { 'leaderboard_update' } raw_scripts: { '/socket.io/socket.io.js' } diff --git a/codebox/controllers/problem/problem.moon b/codebox/controllers/problem/problem.moon index cb78c7b..766e47f 100644 --- a/codebox/controllers/problem/problem.moon +++ b/codebox/controllers/problem/problem.moon @@ -4,7 +4,7 @@ import assert_valid from require "lapis.validate" import Problems from require 'models' make_controller - middleware: { 'logged_in', 'joined_competition', 'competition_started' } + middleware: { 'logged_in', 'joined_competition', 'competition_active', 'competition_started' } scripts: { "pie_chart", 'problem_submit' } raw_scripts: { "https://polyfill.io/v3/polyfill.min.js?features=es6" diff --git a/codebox/controllers/problem/submit.moon b/codebox/controllers/problem/submit.moon index c408511..aa05405 100644 --- a/codebox/controllers/problem/submit.moon +++ b/codebox/controllers/problem/submit.moon @@ -8,7 +8,7 @@ make_controller inject: problem: 'problem' - middleware: { 'logged_in', 'joined_competition', 'during_competition' } + middleware: { 'logged_in', 'joined_competition', 'competition_active', 'during_competition' } scripts: { 'vendor/ace/ace', 'problem_submit' } get: capture_errors_json => diff --git a/codebox/controllers/submission/list.moon b/codebox/controllers/submission/list.moon index f8103f9..7af96dd 100644 --- a/codebox/controllers/submission/list.moon +++ b/codebox/controllers/submission/list.moon @@ -5,7 +5,7 @@ import capture_errors, yield_error from require 'lapis.application' import Competitions, Problems from require 'models' make_controller - middleware: { 'logged_in', 'joined_competition' } + middleware: { 'logged_in', 'joined_competition', 'competition_active' } scripts: { 'pie_chart' } get: => diff --git a/codebox/middleware/competition_active.moon b/codebox/middleware/competition_active.moon new file mode 100644 index 0000000..46851f6 --- /dev/null +++ b/codebox/middleware/competition_active.moon @@ -0,0 +1,7 @@ + +=> + unless @competition + @write json: 'Competition not loaded' + + unless @competition.active + @write redirect_to: (@url_for 'index') diff --git a/codebox/middleware/competition_started.moon b/codebox/middleware/competition_started.moon index ec0bb4b..112740b 100644 --- a/codebox/middleware/competition_started.moon +++ b/codebox/middleware/competition_started.moon @@ -2,10 +2,10 @@ import Competitions from require 'models' => unless @competition - @competition = Competitions\find active: true + @competition = Competitions\find short_name: @params.competition_name unless @competition - @write json: 'No active competition' + @write json: 'Could not find competition' current_time = os.time() start_time = @competition\get_start_time_num! diff --git a/codebox/middleware/during_competition.moon b/codebox/middleware/during_competition.moon index 39afe61..d3c9fea 100644 --- a/codebox/middleware/during_competition.moon +++ b/codebox/middleware/during_competition.moon @@ -2,7 +2,7 @@ import Competitions from require 'models' => unless @competition - @competition = Competitions\find active: true + @competition = Competitions\find short_name: @params.competition_name unless @competition @write json: 'No active competition' diff --git a/codebox/middleware/joined_competition.moon b/codebox/middleware/joined_competition.moon index fbc07ad..87e2445 100644 --- a/codebox/middleware/joined_competition.moon +++ b/codebox/middleware/joined_competition.moon @@ -1,7 +1,7 @@ import Competitions, CompetitionUsers from require 'models' => - @competition = Competitions\find active: true + @competition = Competitions\find short_name: @params.competition_name cu = CompetitionUsers\find user_id: @user.id, competition_id: @competition.id unless cu @write render: 'competition.join' diff --git a/codebox/migrations.moon b/codebox/migrations.moon index 6fac11e..f51f7eb 100644 --- a/codebox/migrations.moon +++ b/codebox/migrations.moon @@ -117,4 +117,7 @@ import insert, query from require "lapis.db" [13]: => add_column "problems", "blacklisted_langs", (types.varchar default: "") + + [14]: => + add_column "competitions", "short_name", (types.varchar default: "unnamed") } diff --git a/codebox/models/jobs.moon b/codebox/models/jobs.moon index ba5e2b4..d7216ee 100644 --- a/codebox/models/jobs.moon +++ b/codebox/models/jobs.moon @@ -17,4 +17,5 @@ class Jobs extends Model @relations: { { 'user', belongs_to: 'Users' } { 'problem', belongs_to: 'Problems' } + { 'competition', belongs_to: 'Competitions' } } diff --git a/codebox/services/scoring.moon b/codebox/services/scoring.moon index ea175a5..8174872 100644 --- a/codebox/services/scoring.moon +++ b/codebox/services/scoring.moon @@ -7,8 +7,9 @@ class Scoring extends Injectable @time = @make 'time' @updater = @make 'updater' + initialize: (competition_id) => -- Get the currently active competition - @competition = Competitions\find active: true + @competition = Competitions\find competition_id -- Load the problems and users that are going to be scored @comp_problems = @competition\get_competition_problems! @@ -179,6 +180,10 @@ class Scoring extends Injectable rescore_everything: => -- Completely resets everything if a problem is -- added or removed or if a user registers - @setup_scoring_tables! - @score_all! - @place! + comps = Competitions\select! + + for comp in *comps + @initialize comp.id + @setup_scoring_tables! + @score_all! + @place! diff --git a/codebox/static/coffee/problem_submit.coffee b/codebox/static/coffee/problem_submit.coffee index 29c91a6..15639ff 100644 --- a/codebox/static/coffee/problem_submit.coffee +++ b/codebox/static/coffee/problem_submit.coffee @@ -15,11 +15,13 @@ $(document).ready -> lang = $('#language').val() code = (ace.edit 'code-editor').getValue() + comp_name = (window.location.pathname.split '/')[1] + $.post window.location.pathname, { lang: lang, code: code }, (data) -> - window.location.replace("/submissions/view?submission_id=#{data}") + window.location.replace("/#{comp_name}/submissions/view?submission_id=#{data}") $('#word-problem-submit-btn').click -> answer = $('#answer').val() diff --git a/codebox/static/coffee/submission_reloader.coffee b/codebox/static/coffee/submission_reloader.coffee index 3b13791..9ee50f9 100644 --- a/codebox/static/coffee/submission_reloader.coffee +++ b/codebox/static/coffee/submission_reloader.coffee @@ -1,7 +1,8 @@ submission_id = (new URLSearchParams window.location.search).get 'submission_id' +competition_name = (window.location.pathname.split '/')[1] updateStatus = -> - $.get '/submissions/status', { submission_id: submission_id }, (html, _, data) -> + $.get "/#{competition_name}/submissions/status", { submission_id: submission_id }, (html, _, data) -> $('#status-container').html html $(document).ready -> diff --git a/codebox/static/css/core.css b/codebox/static/css/core.css index 19cd925..c54056c 100644 --- a/codebox/static/css/core.css +++ b/codebox/static/css/core.css @@ -1 +1 @@ -.navbar{z-index:10000;width:100%;background:#0077c2;height:47px;position:sticky;top:0;box-shadow:0px 0px 10px 0px rgba(0,0,0,.7);display:grid;grid-template-columns:1fr 6fr 1fr}.navbar .navbar-logo{padding-left:8px;text-align:center}.navbar .navbar-logo img{max-height:calc(47px - 2px);display:inline}.navbar ul{display:block;text-align:center;font-size:0}.navbar ul a li{margin:0;display:inline-block;cursor:pointer;font-size:24px;list-style:none;line-height:40px;padding-left:30px;padding-right:30px;padding-top:4px;color:#f2f2f2;border-top-color:#0077c2;transition:200ms all}.navbar ul a li.selected,.navbar ul a li:hover{border-bottom:2px solid #ffe766;color:#fff}.navbar .navbar-username{position:relative;max-height:47px;font-size:24px;line-height:40px;text-align:center;padding-top:4px;cursor:pointer;background-color:#00385c;transition:background-color 150ms}.navbar .navbar-username:hover,.navbar .navbar-username.selected{background-color:#00588f}.navbar .navbar-username:hover .navbar-username-dropdown,.navbar .navbar-username.selected .navbar-username-dropdown{display:block}.navbar .navbar-username a{display:block;width:100%}.navbar .navbar-username .navbar-username-dropdown{display:none;position:absolute;top:100%;left:0;width:100%}.navbar .navbar-username .navbar-username-dropdown .navbar-username-dropdown-option{border-bottom:1px solid #00588f;background:#00385c}.navbar .navbar-username .navbar-username-dropdown .navbar-username-dropdown-option:last-child{border-bottom:none}.navbar .navbar-username .navbar-username-dropdown .navbar-username-dropdown-option:hover{background-color:#00588f}.content,.error-list{width:100%;padding:10px 10%}.right{float:right}.left{float:left}.hidden{visibility:hidden}a{text-decoration:none;color:inherit}.split-2{display:grid;grid-template-columns:repeat(2, 1fr)}.split-2>*:first-child{margin-right:12px}.split-2>*:last-child{margin-left:12px}.split-3{display:grid;grid-template-columns:repeat(3, 1fr)}.split-4{display:grid;grid-template-columns:repeat(4, 1fr)}.split-5{display:grid;grid-template-columns:repeat(5, 1fr)}.split-6{display:grid;grid-template-columns:repeat(6, 1fr)}.split-lr{display:grid;grid-template-columns:1fr 1fr}.split-lr>*:first-child{text-align:left}.split-lr>*:last-child{text-align:right}.split-1-1{display:grid;grid-template-columns:1fr 1fr}.split-1-2{display:grid;grid-template-columns:1fr 2fr}.split-1-3{display:grid;grid-template-columns:1fr 3fr}.split-1-4{display:grid;grid-template-columns:1fr 4fr}.split-1-5{display:grid;grid-template-columns:1fr 5fr}.split-2-1{display:grid;grid-template-columns:2fr 1fr}.split-2-2{display:grid;grid-template-columns:2fr 2fr}.split-2-3{display:grid;grid-template-columns:2fr 3fr}.split-2-4{display:grid;grid-template-columns:2fr 4fr}.split-2-5{display:grid;grid-template-columns:2fr 5fr}.split-3-1{display:grid;grid-template-columns:3fr 1fr}.split-3-2{display:grid;grid-template-columns:3fr 2fr}.split-3-3{display:grid;grid-template-columns:3fr 3fr}.split-3-4{display:grid;grid-template-columns:3fr 4fr}.split-3-5{display:grid;grid-template-columns:3fr 5fr}.split-4-1{display:grid;grid-template-columns:4fr 1fr}.split-4-2{display:grid;grid-template-columns:4fr 2fr}.split-4-3{display:grid;grid-template-columns:4fr 3fr}.split-4-4{display:grid;grid-template-columns:4fr 4fr}.split-4-5{display:grid;grid-template-columns:4fr 5fr}.split-5-1{display:grid;grid-template-columns:5fr 1fr}.split-5-2{display:grid;grid-template-columns:5fr 2fr}.split-5-3{display:grid;grid-template-columns:5fr 3fr}.split-5-4{display:grid;grid-template-columns:5fr 4fr}.split-5-5{display:grid;grid-template-columns:5fr 5fr}pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);font-size:1rem}pre .hljs-ln td{padding-right:8px}pre .hljs-ln-line{max-width:200px !important}.fixed-half-split{display:grid;grid-template-columns:275px 1fr}.tabbed-split{display:grid !important}.tabbed-split.tab-12{grid-template-columns:12px 1fr}.tabbed-split.tab-16{grid-template-columns:16px 1fr}.tabbed-split.tab-24{grid-template-columns:24px 1fr}.tabbed-split.tab-32{grid-template-columns:32px 1fr}.tabbed-split.tab-48{grid-template-columns:48px 1fr}.tabbed-split.tab-64{grid-template-columns:64px 1fr}.tabbed-split.primary>span{background-color:#42a5f5}.tabbed-split.primary-light>span{background-color:#80d6ff}.tabbed-split.primary-dark>span{background-color:#0077c2}.tabbed-split.secondary>span{background-color:gold}.tabbed-split.secondary-light>span{background-color:#ffe766}.tabbed-split.secondary-dark>span{background-color:#998100}.tabbed-split.success>span{background-color:lime}.tabbed-split.error>span{background-color:#d00}.tabbed-split.error-light>span{background-color:#f44}.tabbed-split.error-dark>span{background-color:#700}.box,.problem-description .example-container .example>pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#111}.box .highlight:hover,.problem-description .example-container .example>pre .highlight:hover{background-color:#333}.w50{width:50%}.w100{width:100%}.pad-1{padding:1px !important}.pad-l-1{padding-left:1px !important}.pad-r-1{padding-right:1px !important}.pad-t-1{padding-top:1px !important}.pad-b-1{padding-bottom:1px !important}.mar-1{margin:1px !important}.mar-l-1{margin-left:1px !important}.mar-r-1{margin-right:1px !important}.mar-t-1{margin-top:1px !important}.mar-b-1{margin-bottom:1px !important}.pad-2{padding:2px !important}.pad-l-2{padding-left:2px !important}.pad-r-2{padding-right:2px !important}.pad-t-2{padding-top:2px !important}.pad-b-2{padding-bottom:2px !important}.mar-2{margin:2px !important}.mar-l-2{margin-left:2px !important}.mar-r-2{margin-right:2px !important}.mar-t-2{margin-top:2px !important}.mar-b-2{margin-bottom:2px !important}.pad-3{padding:3px !important}.pad-l-3{padding-left:3px !important}.pad-r-3{padding-right:3px !important}.pad-t-3{padding-top:3px !important}.pad-b-3{padding-bottom:3px !important}.mar-3{margin:3px !important}.mar-l-3{margin-left:3px !important}.mar-r-3{margin-right:3px !important}.mar-t-3{margin-top:3px !important}.mar-b-3{margin-bottom:3px !important}.pad-4{padding:4px !important}.pad-l-4{padding-left:4px !important}.pad-r-4{padding-right:4px !important}.pad-t-4{padding-top:4px !important}.pad-b-4{padding-bottom:4px !important}.mar-4{margin:4px !important}.mar-l-4{margin-left:4px !important}.mar-r-4{margin-right:4px !important}.mar-t-4{margin-top:4px !important}.mar-b-4{margin-bottom:4px !important}.pad-5{padding:5px !important}.pad-l-5{padding-left:5px !important}.pad-r-5{padding-right:5px !important}.pad-t-5{padding-top:5px !important}.pad-b-5{padding-bottom:5px !important}.mar-5{margin:5px !important}.mar-l-5{margin-left:5px !important}.mar-r-5{margin-right:5px !important}.mar-t-5{margin-top:5px !important}.mar-b-5{margin-bottom:5px !important}.pad-6{padding:6px !important}.pad-l-6{padding-left:6px !important}.pad-r-6{padding-right:6px !important}.pad-t-6{padding-top:6px !important}.pad-b-6{padding-bottom:6px !important}.mar-6{margin:6px !important}.mar-l-6{margin-left:6px !important}.mar-r-6{margin-right:6px !important}.mar-t-6{margin-top:6px !important}.mar-b-6{margin-bottom:6px !important}.pad-7{padding:7px !important}.pad-l-7{padding-left:7px !important}.pad-r-7{padding-right:7px !important}.pad-t-7{padding-top:7px !important}.pad-b-7{padding-bottom:7px !important}.mar-7{margin:7px !important}.mar-l-7{margin-left:7px !important}.mar-r-7{margin-right:7px !important}.mar-t-7{margin-top:7px !important}.mar-b-7{margin-bottom:7px !important}.pad-8{padding:8px !important}.pad-l-8{padding-left:8px !important}.pad-r-8{padding-right:8px !important}.pad-t-8{padding-top:8px !important}.pad-b-8{padding-bottom:8px !important}.mar-8{margin:8px !important}.mar-l-8{margin-left:8px !important}.mar-r-8{margin-right:8px !important}.mar-t-8{margin-top:8px !important}.mar-b-8{margin-bottom:8px !important}.pad-9{padding:9px !important}.pad-l-9{padding-left:9px !important}.pad-r-9{padding-right:9px !important}.pad-t-9{padding-top:9px !important}.pad-b-9{padding-bottom:9px !important}.mar-9{margin:9px !important}.mar-l-9{margin-left:9px !important}.mar-r-9{margin-right:9px !important}.mar-t-9{margin-top:9px !important}.mar-b-9{margin-bottom:9px !important}.pad-10{padding:10px !important}.pad-l-10{padding-left:10px !important}.pad-r-10{padding-right:10px !important}.pad-t-10{padding-top:10px !important}.pad-b-10{padding-bottom:10px !important}.mar-10{margin:10px !important}.mar-l-10{margin-left:10px !important}.mar-r-10{margin-right:10px !important}.mar-t-10{margin-top:10px !important}.mar-b-10{margin-bottom:10px !important}.pad-11{padding:11px !important}.pad-l-11{padding-left:11px !important}.pad-r-11{padding-right:11px !important}.pad-t-11{padding-top:11px !important}.pad-b-11{padding-bottom:11px !important}.mar-11{margin:11px !important}.mar-l-11{margin-left:11px !important}.mar-r-11{margin-right:11px !important}.mar-t-11{margin-top:11px !important}.mar-b-11{margin-bottom:11px !important}.pad-12{padding:12px !important}.pad-l-12{padding-left:12px !important}.pad-r-12{padding-right:12px !important}.pad-t-12{padding-top:12px !important}.pad-b-12{padding-bottom:12px !important}.mar-12{margin:12px !important}.mar-l-12{margin-left:12px !important}.mar-r-12{margin-right:12px !important}.mar-t-12{margin-top:12px !important}.mar-b-12{margin-bottom:12px !important}.pad-13{padding:13px !important}.pad-l-13{padding-left:13px !important}.pad-r-13{padding-right:13px !important}.pad-t-13{padding-top:13px !important}.pad-b-13{padding-bottom:13px !important}.mar-13{margin:13px !important}.mar-l-13{margin-left:13px !important}.mar-r-13{margin-right:13px !important}.mar-t-13{margin-top:13px !important}.mar-b-13{margin-bottom:13px !important}.pad-14{padding:14px !important}.pad-l-14{padding-left:14px !important}.pad-r-14{padding-right:14px !important}.pad-t-14{padding-top:14px !important}.pad-b-14{padding-bottom:14px !important}.mar-14{margin:14px !important}.mar-l-14{margin-left:14px !important}.mar-r-14{margin-right:14px !important}.mar-t-14{margin-top:14px !important}.mar-b-14{margin-bottom:14px !important}.pad-15{padding:15px !important}.pad-l-15{padding-left:15px !important}.pad-r-15{padding-right:15px !important}.pad-t-15{padding-top:15px !important}.pad-b-15{padding-bottom:15px !important}.mar-15{margin:15px !important}.mar-l-15{margin-left:15px !important}.mar-r-15{margin-right:15px !important}.mar-t-15{margin-top:15px !important}.mar-b-15{margin-bottom:15px !important}.pad-16{padding:16px !important}.pad-l-16{padding-left:16px !important}.pad-r-16{padding-right:16px !important}.pad-t-16{padding-top:16px !important}.pad-b-16{padding-bottom:16px !important}.mar-16{margin:16px !important}.mar-l-16{margin-left:16px !important}.mar-r-16{margin-right:16px !important}.mar-t-16{margin-top:16px !important}.mar-b-16{margin-bottom:16px !important}.pad-17{padding:17px !important}.pad-l-17{padding-left:17px !important}.pad-r-17{padding-right:17px !important}.pad-t-17{padding-top:17px !important}.pad-b-17{padding-bottom:17px !important}.mar-17{margin:17px !important}.mar-l-17{margin-left:17px !important}.mar-r-17{margin-right:17px !important}.mar-t-17{margin-top:17px !important}.mar-b-17{margin-bottom:17px !important}.pad-18{padding:18px !important}.pad-l-18{padding-left:18px !important}.pad-r-18{padding-right:18px !important}.pad-t-18{padding-top:18px !important}.pad-b-18{padding-bottom:18px !important}.mar-18{margin:18px !important}.mar-l-18{margin-left:18px !important}.mar-r-18{margin-right:18px !important}.mar-t-18{margin-top:18px !important}.mar-b-18{margin-bottom:18px !important}.pad-19{padding:19px !important}.pad-l-19{padding-left:19px !important}.pad-r-19{padding-right:19px !important}.pad-t-19{padding-top:19px !important}.pad-b-19{padding-bottom:19px !important}.mar-19{margin:19px !important}.mar-l-19{margin-left:19px !important}.mar-r-19{margin-right:19px !important}.mar-t-19{margin-top:19px !important}.mar-b-19{margin-bottom:19px !important}.pad-20{padding:20px !important}.pad-l-20{padding-left:20px !important}.pad-r-20{padding-right:20px !important}.pad-t-20{padding-top:20px !important}.pad-b-20{padding-bottom:20px !important}.mar-20{margin:20px !important}.mar-l-20{margin-left:20px !important}.mar-r-20{margin-right:20px !important}.mar-t-20{margin-top:20px !important}.mar-b-20{margin-bottom:20px !important}.pad-21{padding:21px !important}.pad-l-21{padding-left:21px !important}.pad-r-21{padding-right:21px !important}.pad-t-21{padding-top:21px !important}.pad-b-21{padding-bottom:21px !important}.mar-21{margin:21px !important}.mar-l-21{margin-left:21px !important}.mar-r-21{margin-right:21px !important}.mar-t-21{margin-top:21px !important}.mar-b-21{margin-bottom:21px !important}.pad-22{padding:22px !important}.pad-l-22{padding-left:22px !important}.pad-r-22{padding-right:22px !important}.pad-t-22{padding-top:22px !important}.pad-b-22{padding-bottom:22px !important}.mar-22{margin:22px !important}.mar-l-22{margin-left:22px !important}.mar-r-22{margin-right:22px !important}.mar-t-22{margin-top:22px !important}.mar-b-22{margin-bottom:22px !important}.pad-23{padding:23px !important}.pad-l-23{padding-left:23px !important}.pad-r-23{padding-right:23px !important}.pad-t-23{padding-top:23px !important}.pad-b-23{padding-bottom:23px !important}.mar-23{margin:23px !important}.mar-l-23{margin-left:23px !important}.mar-r-23{margin-right:23px !important}.mar-t-23{margin-top:23px !important}.mar-b-23{margin-bottom:23px !important}.pad-24{padding:24px !important}.pad-l-24{padding-left:24px !important}.pad-r-24{padding-right:24px !important}.pad-t-24{padding-top:24px !important}.pad-b-24{padding-bottom:24px !important}.mar-24{margin:24px !important}.mar-l-24{margin-left:24px !important}.mar-r-24{margin-right:24px !important}.mar-t-24{margin-top:24px !important}.mar-b-24{margin-bottom:24px !important}.pad-25{padding:25px !important}.pad-l-25{padding-left:25px !important}.pad-r-25{padding-right:25px !important}.pad-t-25{padding-top:25px !important}.pad-b-25{padding-bottom:25px !important}.mar-25{margin:25px !important}.mar-l-25{margin-left:25px !important}.mar-r-25{margin-right:25px !important}.mar-t-25{margin-top:25px !important}.mar-b-25{margin-bottom:25px !important}.pad-26{padding:26px !important}.pad-l-26{padding-left:26px !important}.pad-r-26{padding-right:26px !important}.pad-t-26{padding-top:26px !important}.pad-b-26{padding-bottom:26px !important}.mar-26{margin:26px !important}.mar-l-26{margin-left:26px !important}.mar-r-26{margin-right:26px !important}.mar-t-26{margin-top:26px !important}.mar-b-26{margin-bottom:26px !important}.pad-27{padding:27px !important}.pad-l-27{padding-left:27px !important}.pad-r-27{padding-right:27px !important}.pad-t-27{padding-top:27px !important}.pad-b-27{padding-bottom:27px !important}.mar-27{margin:27px !important}.mar-l-27{margin-left:27px !important}.mar-r-27{margin-right:27px !important}.mar-t-27{margin-top:27px !important}.mar-b-27{margin-bottom:27px !important}.pad-28{padding:28px !important}.pad-l-28{padding-left:28px !important}.pad-r-28{padding-right:28px !important}.pad-t-28{padding-top:28px !important}.pad-b-28{padding-bottom:28px !important}.mar-28{margin:28px !important}.mar-l-28{margin-left:28px !important}.mar-r-28{margin-right:28px !important}.mar-t-28{margin-top:28px !important}.mar-b-28{margin-bottom:28px !important}.pad-29{padding:29px !important}.pad-l-29{padding-left:29px !important}.pad-r-29{padding-right:29px !important}.pad-t-29{padding-top:29px !important}.pad-b-29{padding-bottom:29px !important}.mar-29{margin:29px !important}.mar-l-29{margin-left:29px !important}.mar-r-29{margin-right:29px !important}.mar-t-29{margin-top:29px !important}.mar-b-29{margin-bottom:29px !important}.pad-30{padding:30px !important}.pad-l-30{padding-left:30px !important}.pad-r-30{padding-right:30px !important}.pad-t-30{padding-top:30px !important}.pad-b-30{padding-bottom:30px !important}.mar-30{margin:30px !important}.mar-l-30{margin-left:30px !important}.mar-r-30{margin-right:30px !important}.mar-t-30{margin-top:30px !important}.mar-b-30{margin-bottom:30px !important}.pad-31{padding:31px !important}.pad-l-31{padding-left:31px !important}.pad-r-31{padding-right:31px !important}.pad-t-31{padding-top:31px !important}.pad-b-31{padding-bottom:31px !important}.mar-31{margin:31px !important}.mar-l-31{margin-left:31px !important}.mar-r-31{margin-right:31px !important}.mar-t-31{margin-top:31px !important}.mar-b-31{margin-bottom:31px !important}.pad-32{padding:32px !important}.pad-l-32{padding-left:32px !important}.pad-r-32{padding-right:32px !important}.pad-t-32{padding-top:32px !important}.pad-b-32{padding-bottom:32px !important}.mar-32{margin:32px !important}.mar-l-32{margin-left:32px !important}.mar-r-32{margin-right:32px !important}.mar-t-32{margin-top:32px !important}.mar-b-32{margin-bottom:32px !important}.pad-33{padding:33px !important}.pad-l-33{padding-left:33px !important}.pad-r-33{padding-right:33px !important}.pad-t-33{padding-top:33px !important}.pad-b-33{padding-bottom:33px !important}.mar-33{margin:33px !important}.mar-l-33{margin-left:33px !important}.mar-r-33{margin-right:33px !important}.mar-t-33{margin-top:33px !important}.mar-b-33{margin-bottom:33px !important}.pad-34{padding:34px !important}.pad-l-34{padding-left:34px !important}.pad-r-34{padding-right:34px !important}.pad-t-34{padding-top:34px !important}.pad-b-34{padding-bottom:34px !important}.mar-34{margin:34px !important}.mar-l-34{margin-left:34px !important}.mar-r-34{margin-right:34px !important}.mar-t-34{margin-top:34px !important}.mar-b-34{margin-bottom:34px !important}.pad-35{padding:35px !important}.pad-l-35{padding-left:35px !important}.pad-r-35{padding-right:35px !important}.pad-t-35{padding-top:35px !important}.pad-b-35{padding-bottom:35px !important}.mar-35{margin:35px !important}.mar-l-35{margin-left:35px !important}.mar-r-35{margin-right:35px !important}.mar-t-35{margin-top:35px !important}.mar-b-35{margin-bottom:35px !important}.pad-36{padding:36px !important}.pad-l-36{padding-left:36px !important}.pad-r-36{padding-right:36px !important}.pad-t-36{padding-top:36px !important}.pad-b-36{padding-bottom:36px !important}.mar-36{margin:36px !important}.mar-l-36{margin-left:36px !important}.mar-r-36{margin-right:36px !important}.mar-t-36{margin-top:36px !important}.mar-b-36{margin-bottom:36px !important}.pad-37{padding:37px !important}.pad-l-37{padding-left:37px !important}.pad-r-37{padding-right:37px !important}.pad-t-37{padding-top:37px !important}.pad-b-37{padding-bottom:37px !important}.mar-37{margin:37px !important}.mar-l-37{margin-left:37px !important}.mar-r-37{margin-right:37px !important}.mar-t-37{margin-top:37px !important}.mar-b-37{margin-bottom:37px !important}.pad-38{padding:38px !important}.pad-l-38{padding-left:38px !important}.pad-r-38{padding-right:38px !important}.pad-t-38{padding-top:38px !important}.pad-b-38{padding-bottom:38px !important}.mar-38{margin:38px !important}.mar-l-38{margin-left:38px !important}.mar-r-38{margin-right:38px !important}.mar-t-38{margin-top:38px !important}.mar-b-38{margin-bottom:38px !important}.pad-39{padding:39px !important}.pad-l-39{padding-left:39px !important}.pad-r-39{padding-right:39px !important}.pad-t-39{padding-top:39px !important}.pad-b-39{padding-bottom:39px !important}.mar-39{margin:39px !important}.mar-l-39{margin-left:39px !important}.mar-r-39{margin-right:39px !important}.mar-t-39{margin-top:39px !important}.mar-b-39{margin-bottom:39px !important}.pad-40{padding:40px !important}.pad-l-40{padding-left:40px !important}.pad-r-40{padding-right:40px !important}.pad-t-40{padding-top:40px !important}.pad-b-40{padding-bottom:40px !important}.mar-40{margin:40px !important}.mar-l-40{margin-left:40px !important}.mar-r-40{margin-right:40px !important}.mar-t-40{margin-top:40px !important}.mar-b-40{margin-bottom:40px !important}.pad-41{padding:41px !important}.pad-l-41{padding-left:41px !important}.pad-r-41{padding-right:41px !important}.pad-t-41{padding-top:41px !important}.pad-b-41{padding-bottom:41px !important}.mar-41{margin:41px !important}.mar-l-41{margin-left:41px !important}.mar-r-41{margin-right:41px !important}.mar-t-41{margin-top:41px !important}.mar-b-41{margin-bottom:41px !important}.pad-42{padding:42px !important}.pad-l-42{padding-left:42px !important}.pad-r-42{padding-right:42px !important}.pad-t-42{padding-top:42px !important}.pad-b-42{padding-bottom:42px !important}.mar-42{margin:42px !important}.mar-l-42{margin-left:42px !important}.mar-r-42{margin-right:42px !important}.mar-t-42{margin-top:42px !important}.mar-b-42{margin-bottom:42px !important}.pad-43{padding:43px !important}.pad-l-43{padding-left:43px !important}.pad-r-43{padding-right:43px !important}.pad-t-43{padding-top:43px !important}.pad-b-43{padding-bottom:43px !important}.mar-43{margin:43px !important}.mar-l-43{margin-left:43px !important}.mar-r-43{margin-right:43px !important}.mar-t-43{margin-top:43px !important}.mar-b-43{margin-bottom:43px !important}.pad-44{padding:44px !important}.pad-l-44{padding-left:44px !important}.pad-r-44{padding-right:44px !important}.pad-t-44{padding-top:44px !important}.pad-b-44{padding-bottom:44px !important}.mar-44{margin:44px !important}.mar-l-44{margin-left:44px !important}.mar-r-44{margin-right:44px !important}.mar-t-44{margin-top:44px !important}.mar-b-44{margin-bottom:44px !important}.pad-45{padding:45px !important}.pad-l-45{padding-left:45px !important}.pad-r-45{padding-right:45px !important}.pad-t-45{padding-top:45px !important}.pad-b-45{padding-bottom:45px !important}.mar-45{margin:45px !important}.mar-l-45{margin-left:45px !important}.mar-r-45{margin-right:45px !important}.mar-t-45{margin-top:45px !important}.mar-b-45{margin-bottom:45px !important}.pad-46{padding:46px !important}.pad-l-46{padding-left:46px !important}.pad-r-46{padding-right:46px !important}.pad-t-46{padding-top:46px !important}.pad-b-46{padding-bottom:46px !important}.mar-46{margin:46px !important}.mar-l-46{margin-left:46px !important}.mar-r-46{margin-right:46px !important}.mar-t-46{margin-top:46px !important}.mar-b-46{margin-bottom:46px !important}.pad-47{padding:47px !important}.pad-l-47{padding-left:47px !important}.pad-r-47{padding-right:47px !important}.pad-t-47{padding-top:47px !important}.pad-b-47{padding-bottom:47px !important}.mar-47{margin:47px !important}.mar-l-47{margin-left:47px !important}.mar-r-47{margin-right:47px !important}.mar-t-47{margin-top:47px !important}.mar-b-47{margin-bottom:47px !important}.pad-48{padding:48px !important}.pad-l-48{padding-left:48px !important}.pad-r-48{padding-right:48px !important}.pad-t-48{padding-top:48px !important}.pad-b-48{padding-bottom:48px !important}.mar-48{margin:48px !important}.mar-l-48{margin-left:48px !important}.mar-r-48{margin-right:48px !important}.mar-t-48{margin-top:48px !important}.mar-b-48{margin-bottom:48px !important}.pad-49{padding:49px !important}.pad-l-49{padding-left:49px !important}.pad-r-49{padding-right:49px !important}.pad-t-49{padding-top:49px !important}.pad-b-49{padding-bottom:49px !important}.mar-49{margin:49px !important}.mar-l-49{margin-left:49px !important}.mar-r-49{margin-right:49px !important}.mar-t-49{margin-top:49px !important}.mar-b-49{margin-bottom:49px !important}.ta-center{text-align:center}.bcolor-pl{background-color:#80d6ff}.bcolor-p{background-color:#42a5f5}.bcolor-pd{background-color:#0077c2}.bcolor-sl{background-color:#ffe766}.bcolor-s{background-color:gold}.bcolor-sd{background-color:#998100}.bcolor-c{background-color:#090}.bcolor-e{background-color:#f44}.problem-info{float:right;width:300px;position:relative;transition:left 1s ease-in-out}.problem-description h2{margin-top:24px}.problem-description .example-container{width:100%;display:block;float:right}.problem-description .example-container .example{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5)}.problem-description .example-container .example>pre{box-shadow:none;min-height:14rem;padding:12px;overflow:auto}.problem-description .example-container .example>pre:first-child{border-right:2px solid #888}.sidebar-problem-list{z-index:50;box-shadow:0 10px 0 0 transparent,0 10px 0 0 transparent,10px 0 0 0 transparent,0 8px 8px 2px rgba(0,0,0,.5);background:#003252;position:relative;min-height:calc(100vh - 47px);transition:left 500ms ease-in-out}.sidebar-problem-list .sidebar-problem{width:100%;display:grid;grid-template-columns:32px 1fr;border-left-width:24px;border-left-style:solid;border-left-color:#0077c2;transition:background-color 200ms ease-in-out;transition:width 200ms ease-in-out;background-color:inherit;cursor:pointer}.sidebar-problem-list .sidebar-problem[correct]{border-left-color:lime}.sidebar-problem-list .sidebar-problem[wrong]{border-left-color:red}.sidebar-problem-list .sidebar-problem[selected],.sidebar-problem-list .sidebar-problem:hover{width:calc(100% + 24px)}.sidebar-problem-list .sidebar-problem[selected]{background-color:#42a5f5 !important}.sidebar-problem-list .sidebar-problem:hover{background-color:#128ef2}.sidebar-problem-list .sidebar-problem-letter{text-align:center;background-color:#001929;padding-top:20px;padding-bottom:20px;font-size:1.2rem}.sidebar-problem-list .sidebar-problem-name{text-align:left;font-size:1.2rem;padding-left:5px;padding-top:20px;padding-bottom:20px;margin-left:10px;margin-right:10px}.progressbar{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background:#444;height:32px;width:100%}.progressbar .progressbar-meter{background:#ffe766;height:32px;transition:width ease-in-out 1s}.progressbar .progressbar-labels{position:relative;width:100%}.progressbar .progressbar-labels *{position:absolute}.progressbar .progressbar-labels :first-child{top:-20px;left:0}.progressbar .progressbar-labels :last-child{top:-20px;right:0}.leaderboard{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);text-align:center;font-size:1.2rem;position:relative}.leaderboard .placement,.leaderboard .placement-labels{position:absolute;width:100%;top:0;left:0;display:grid;grid-template-columns:1fr 7fr 10fr 3fr}.leaderboard .placement .problem,.leaderboard .placement-labels .problem{display:grid}.leaderboard .placement-labels{background:#42a5f5;font-size:1.4rem;padding:4px}.leaderboard .placement{transition:all 750ms ease-in-out;padding:0 4px;line-height:36px}.leaderboard .placement:nth-child(even){background:#0077c2}.leaderboard .placement:nth-child(odd){background:#00385c}.leaderboard .placement.user{background:#ffe766;color:#000}.leaderboard .placement :first-child{font-size:1.2rem}.leaderboard .placement .problem>div{padding:4px;line-height:18px}.leaderboard .placement .problem>div :first-child{font-size:1.2rem}.leaderboard .placement .problem>div :last-child{font-size:.8rem}.leaderboard .placement .problem>div.correct{background:#50ff50;color:#000}.leaderboard .placement .problem>div.wrong{background:#ff5050;color:#000}.leaderboard .placement .problem>div.attempted{background:#999;color:#000}.rect-auto,.c100.p100 .slice,.c100.p99 .slice,.c100.p98 .slice,.c100.p97 .slice,.c100.p96 .slice,.c100.p95 .slice,.c100.p94 .slice,.c100.p93 .slice,.c100.p92 .slice,.c100.p91 .slice,.c100.p90 .slice,.c100.p89 .slice,.c100.p88 .slice,.c100.p87 .slice,.c100.p86 .slice,.c100.p85 .slice,.c100.p84 .slice,.c100.p83 .slice,.c100.p82 .slice,.c100.p81 .slice,.c100.p80 .slice,.c100.p79 .slice,.c100.p78 .slice,.c100.p77 .slice,.c100.p76 .slice,.c100.p75 .slice,.c100.p74 .slice,.c100.p73 .slice,.c100.p72 .slice,.c100.p71 .slice,.c100.p70 .slice,.c100.p69 .slice,.c100.p68 .slice,.c100.p67 .slice,.c100.p66 .slice,.c100.p65 .slice,.c100.p64 .slice,.c100.p63 .slice,.c100.p62 .slice,.c100.p61 .slice,.c100.p60 .slice,.c100.p59 .slice,.c100.p58 .slice,.c100.p57 .slice,.c100.p56 .slice,.c100.p55 .slice,.c100.p54 .slice,.c100.p53 .slice,.c100.p52 .slice,.c100.p51 .slice{clip:rect(auto, auto, auto, auto)}.pie,.c100.p100 .fill,.c100.p99 .fill,.c100.p98 .fill,.c100.p97 .fill,.c100.p96 .fill,.c100.p95 .fill,.c100.p94 .fill,.c100.p93 .fill,.c100.p92 .fill,.c100.p91 .fill,.c100.p90 .fill,.c100.p89 .fill,.c100.p88 .fill,.c100.p87 .fill,.c100.p86 .fill,.c100.p85 .fill,.c100.p84 .fill,.c100.p83 .fill,.c100.p82 .fill,.c100.p81 .fill,.c100.p80 .fill,.c100.p79 .fill,.c100.p78 .fill,.c100.p77 .fill,.c100.p76 .fill,.c100.p75 .fill,.c100.p74 .fill,.c100.p73 .fill,.c100.p72 .fill,.c100.p71 .fill,.c100.p70 .fill,.c100.p69 .fill,.c100.p68 .fill,.c100.p67 .fill,.c100.p66 .fill,.c100.p65 .fill,.c100.p64 .fill,.c100.p63 .fill,.c100.p62 .fill,.c100.p61 .fill,.c100.p60 .fill,.c100.p59 .fill,.c100.p58 .fill,.c100.p57 .fill,.c100.p56 .fill,.c100.p55 .fill,.c100.p54 .fill,.c100.p53 .fill,.c100.p52 .fill,.c100.p51 .fill,.c100 .bar{position:absolute;border:.08em solid #307bbb;width:.84em;height:.84em;clip:rect(0em, 0.5em, 1em, 0em);border-radius:50%;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.pie-fill,.c100.p100 .fill,.c100.p100.bar:after,.c100.p99 .fill,.c100.p99.bar:after,.c100.p98 .fill,.c100.p98.bar:after,.c100.p97 .fill,.c100.p97.bar:after,.c100.p96 .fill,.c100.p96.bar:after,.c100.p95 .fill,.c100.p95.bar:after,.c100.p94 .fill,.c100.p94.bar:after,.c100.p93 .fill,.c100.p93.bar:after,.c100.p92 .fill,.c100.p92.bar:after,.c100.p91 .fill,.c100.p91.bar:after,.c100.p90 .fill,.c100.p90.bar:after,.c100.p89 .fill,.c100.p89.bar:after,.c100.p88 .fill,.c100.p88.bar:after,.c100.p87 .fill,.c100.p87.bar:after,.c100.p86 .fill,.c100.p86.bar:after,.c100.p85 .fill,.c100.p85.bar:after,.c100.p84 .fill,.c100.p84.bar:after,.c100.p83 .fill,.c100.p83.bar:after,.c100.p82 .fill,.c100.p82.bar:after,.c100.p81 .fill,.c100.p81.bar:after,.c100.p80 .fill,.c100.p80.bar:after,.c100.p79 .fill,.c100.p79.bar:after,.c100.p78 .fill,.c100.p78.bar:after,.c100.p77 .fill,.c100.p77.bar:after,.c100.p76 .fill,.c100.p76.bar:after,.c100.p75 .fill,.c100.p75.bar:after,.c100.p74 .fill,.c100.p74.bar:after,.c100.p73 .fill,.c100.p73.bar:after,.c100.p72 .fill,.c100.p72.bar:after,.c100.p71 .fill,.c100.p71.bar:after,.c100.p70 .fill,.c100.p70.bar:after,.c100.p69 .fill,.c100.p69.bar:after,.c100.p68 .fill,.c100.p68.bar:after,.c100.p67 .fill,.c100.p67.bar:after,.c100.p66 .fill,.c100.p66.bar:after,.c100.p65 .fill,.c100.p65.bar:after,.c100.p64 .fill,.c100.p64.bar:after,.c100.p63 .fill,.c100.p63.bar:after,.c100.p62 .fill,.c100.p62.bar:after,.c100.p61 .fill,.c100.p61.bar:after,.c100.p60 .fill,.c100.p60.bar:after,.c100.p59 .fill,.c100.p59.bar:after,.c100.p58 .fill,.c100.p58.bar:after,.c100.p57 .fill,.c100.p57.bar:after,.c100.p56 .fill,.c100.p56.bar:after,.c100.p55 .fill,.c100.p55.bar:after,.c100.p54 .fill,.c100.p54.bar:after,.c100.p53 .fill,.c100.p53.bar:after,.c100.p52 .fill,.c100.p52.bar:after,.c100.p51 .fill,.c100.p51.bar:after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100{position:relative;font-size:120px;width:1em;height:1em;border-radius:50%;float:left;background-color:#ccc}.c100 *,.c100 *:before,.c100 *:after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.c100.center{float:none;margin:0 auto}.c100.big{font-size:240px}.c100.small{font-size:80px}.c100>span{position:absolute;width:100%;z-index:1;left:0;top:0;width:5em;line-height:5em;font-size:.2em;color:#ccc;display:block;text-align:center;white-space:nowrap;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.c100:after{position:absolute;top:.08em;left:.08em;display:block;content:" ";border-radius:50%;background-color:#f5f5f5;width:.84em;height:.84em;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-in;-moz-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.c100 .slice{position:absolute;width:1em;height:1em;clip:rect(0em, 1em, 1em, 0.5em)}.c100.p1 .bar{-webkit-transform:rotate(3.6deg);-moz-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);-o-transform:rotate(3.6deg);transform:rotate(3.6deg)}.c100.p2 .bar{-webkit-transform:rotate(7.2deg);-moz-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);-o-transform:rotate(7.2deg);transform:rotate(7.2deg)}.c100.p3 .bar{-webkit-transform:rotate(10.8deg);-moz-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);-o-transform:rotate(10.8deg);transform:rotate(10.8deg)}.c100.p4 .bar{-webkit-transform:rotate(14.4deg);-moz-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);-o-transform:rotate(14.4deg);transform:rotate(14.4deg)}.c100.p5 .bar{-webkit-transform:rotate(18deg);-moz-transform:rotate(18deg);-ms-transform:rotate(18deg);-o-transform:rotate(18deg);transform:rotate(18deg)}.c100.p6 .bar{-webkit-transform:rotate(21.6deg);-moz-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);-o-transform:rotate(21.6deg);transform:rotate(21.6deg)}.c100.p7 .bar{-webkit-transform:rotate(25.2deg);-moz-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);-o-transform:rotate(25.2deg);transform:rotate(25.2deg)}.c100.p8 .bar{-webkit-transform:rotate(28.8deg);-moz-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);-o-transform:rotate(28.8deg);transform:rotate(28.8deg)}.c100.p9 .bar{-webkit-transform:rotate(32.4deg);-moz-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);-o-transform:rotate(32.4deg);transform:rotate(32.4deg)}.c100.p10 .bar{-webkit-transform:rotate(36deg);-moz-transform:rotate(36deg);-ms-transform:rotate(36deg);-o-transform:rotate(36deg);transform:rotate(36deg)}.c100.p11 .bar{-webkit-transform:rotate(39.6deg);-moz-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);-o-transform:rotate(39.6deg);transform:rotate(39.6deg)}.c100.p12 .bar{-webkit-transform:rotate(43.2deg);-moz-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);-o-transform:rotate(43.2deg);transform:rotate(43.2deg)}.c100.p13 .bar{-webkit-transform:rotate(46.8deg);-moz-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);-o-transform:rotate(46.8deg);transform:rotate(46.8deg)}.c100.p14 .bar{-webkit-transform:rotate(50.4deg);-moz-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);-o-transform:rotate(50.4deg);transform:rotate(50.4deg)}.c100.p15 .bar{-webkit-transform:rotate(54deg);-moz-transform:rotate(54deg);-ms-transform:rotate(54deg);-o-transform:rotate(54deg);transform:rotate(54deg)}.c100.p16 .bar{-webkit-transform:rotate(57.6deg);-moz-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);-o-transform:rotate(57.6deg);transform:rotate(57.6deg)}.c100.p17 .bar{-webkit-transform:rotate(61.2deg);-moz-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);-o-transform:rotate(61.2deg);transform:rotate(61.2deg)}.c100.p18 .bar{-webkit-transform:rotate(64.8deg);-moz-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);-o-transform:rotate(64.8deg);transform:rotate(64.8deg)}.c100.p19 .bar{-webkit-transform:rotate(68.4deg);-moz-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);-o-transform:rotate(68.4deg);transform:rotate(68.4deg)}.c100.p20 .bar{-webkit-transform:rotate(72deg);-moz-transform:rotate(72deg);-ms-transform:rotate(72deg);-o-transform:rotate(72deg);transform:rotate(72deg)}.c100.p21 .bar{-webkit-transform:rotate(75.6deg);-moz-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);-o-transform:rotate(75.6deg);transform:rotate(75.6deg)}.c100.p22 .bar{-webkit-transform:rotate(79.2deg);-moz-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);-o-transform:rotate(79.2deg);transform:rotate(79.2deg)}.c100.p23 .bar{-webkit-transform:rotate(82.8deg);-moz-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);-o-transform:rotate(82.8deg);transform:rotate(82.8deg)}.c100.p24 .bar{-webkit-transform:rotate(86.4deg);-moz-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);-o-transform:rotate(86.4deg);transform:rotate(86.4deg)}.c100.p25 .bar{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.c100.p26 .bar{-webkit-transform:rotate(93.6deg);-moz-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);-o-transform:rotate(93.6deg);transform:rotate(93.6deg)}.c100.p27 .bar{-webkit-transform:rotate(97.2deg);-moz-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);-o-transform:rotate(97.2deg);transform:rotate(97.2deg)}.c100.p28 .bar{-webkit-transform:rotate(100.8deg);-moz-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);-o-transform:rotate(100.8deg);transform:rotate(100.8deg)}.c100.p29 .bar{-webkit-transform:rotate(104.4deg);-moz-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);-o-transform:rotate(104.4deg);transform:rotate(104.4deg)}.c100.p30 .bar{-webkit-transform:rotate(108deg);-moz-transform:rotate(108deg);-ms-transform:rotate(108deg);-o-transform:rotate(108deg);transform:rotate(108deg)}.c100.p31 .bar{-webkit-transform:rotate(111.6deg);-moz-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);-o-transform:rotate(111.6deg);transform:rotate(111.6deg)}.c100.p32 .bar{-webkit-transform:rotate(115.2deg);-moz-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);-o-transform:rotate(115.2deg);transform:rotate(115.2deg)}.c100.p33 .bar{-webkit-transform:rotate(118.8deg);-moz-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);-o-transform:rotate(118.8deg);transform:rotate(118.8deg)}.c100.p34 .bar{-webkit-transform:rotate(122.4deg);-moz-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);-o-transform:rotate(122.4deg);transform:rotate(122.4deg)}.c100.p35 .bar{-webkit-transform:rotate(126deg);-moz-transform:rotate(126deg);-ms-transform:rotate(126deg);-o-transform:rotate(126deg);transform:rotate(126deg)}.c100.p36 .bar{-webkit-transform:rotate(129.6deg);-moz-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);-o-transform:rotate(129.6deg);transform:rotate(129.6deg)}.c100.p37 .bar{-webkit-transform:rotate(133.2deg);-moz-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);-o-transform:rotate(133.2deg);transform:rotate(133.2deg)}.c100.p38 .bar{-webkit-transform:rotate(136.8deg);-moz-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);-o-transform:rotate(136.8deg);transform:rotate(136.8deg)}.c100.p39 .bar{-webkit-transform:rotate(140.4deg);-moz-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);-o-transform:rotate(140.4deg);transform:rotate(140.4deg)}.c100.p40 .bar{-webkit-transform:rotate(144deg);-moz-transform:rotate(144deg);-ms-transform:rotate(144deg);-o-transform:rotate(144deg);transform:rotate(144deg)}.c100.p41 .bar{-webkit-transform:rotate(147.6deg);-moz-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);-o-transform:rotate(147.6deg);transform:rotate(147.6deg)}.c100.p42 .bar{-webkit-transform:rotate(151.2deg);-moz-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);-o-transform:rotate(151.2deg);transform:rotate(151.2deg)}.c100.p43 .bar{-webkit-transform:rotate(154.8deg);-moz-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);-o-transform:rotate(154.8deg);transform:rotate(154.8deg)}.c100.p44 .bar{-webkit-transform:rotate(158.4deg);-moz-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);-o-transform:rotate(158.4deg);transform:rotate(158.4deg)}.c100.p45 .bar{-webkit-transform:rotate(162deg);-moz-transform:rotate(162deg);-ms-transform:rotate(162deg);-o-transform:rotate(162deg);transform:rotate(162deg)}.c100.p46 .bar{-webkit-transform:rotate(165.6deg);-moz-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);-o-transform:rotate(165.6deg);transform:rotate(165.6deg)}.c100.p47 .bar{-webkit-transform:rotate(169.2deg);-moz-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);-o-transform:rotate(169.2deg);transform:rotate(169.2deg)}.c100.p48 .bar{-webkit-transform:rotate(172.8deg);-moz-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);-o-transform:rotate(172.8deg);transform:rotate(172.8deg)}.c100.p49 .bar{-webkit-transform:rotate(176.4deg);-moz-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);-o-transform:rotate(176.4deg);transform:rotate(176.4deg)}.c100.p50 .bar{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100.p51 .bar{-webkit-transform:rotate(183.6deg);-moz-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);-o-transform:rotate(183.6deg);transform:rotate(183.6deg)}.c100.p52 .bar{-webkit-transform:rotate(187.2deg);-moz-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);-o-transform:rotate(187.2deg);transform:rotate(187.2deg)}.c100.p53 .bar{-webkit-transform:rotate(190.8deg);-moz-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);-o-transform:rotate(190.8deg);transform:rotate(190.8deg)}.c100.p54 .bar{-webkit-transform:rotate(194.4deg);-moz-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);-o-transform:rotate(194.4deg);transform:rotate(194.4deg)}.c100.p55 .bar{-webkit-transform:rotate(198deg);-moz-transform:rotate(198deg);-ms-transform:rotate(198deg);-o-transform:rotate(198deg);transform:rotate(198deg)}.c100.p56 .bar{-webkit-transform:rotate(201.6deg);-moz-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);-o-transform:rotate(201.6deg);transform:rotate(201.6deg)}.c100.p57 .bar{-webkit-transform:rotate(205.2deg);-moz-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);-o-transform:rotate(205.2deg);transform:rotate(205.2deg)}.c100.p58 .bar{-webkit-transform:rotate(208.8deg);-moz-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);-o-transform:rotate(208.8deg);transform:rotate(208.8deg)}.c100.p59 .bar{-webkit-transform:rotate(212.4deg);-moz-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);-o-transform:rotate(212.4deg);transform:rotate(212.4deg)}.c100.p60 .bar{-webkit-transform:rotate(216deg);-moz-transform:rotate(216deg);-ms-transform:rotate(216deg);-o-transform:rotate(216deg);transform:rotate(216deg)}.c100.p61 .bar{-webkit-transform:rotate(219.6deg);-moz-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);-o-transform:rotate(219.6deg);transform:rotate(219.6deg)}.c100.p62 .bar{-webkit-transform:rotate(223.2deg);-moz-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);-o-transform:rotate(223.2deg);transform:rotate(223.2deg)}.c100.p63 .bar{-webkit-transform:rotate(226.8deg);-moz-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);-o-transform:rotate(226.8deg);transform:rotate(226.8deg)}.c100.p64 .bar{-webkit-transform:rotate(230.4deg);-moz-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);-o-transform:rotate(230.4deg);transform:rotate(230.4deg)}.c100.p65 .bar{-webkit-transform:rotate(234deg);-moz-transform:rotate(234deg);-ms-transform:rotate(234deg);-o-transform:rotate(234deg);transform:rotate(234deg)}.c100.p66 .bar{-webkit-transform:rotate(237.6deg);-moz-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);-o-transform:rotate(237.6deg);transform:rotate(237.6deg)}.c100.p67 .bar{-webkit-transform:rotate(241.2deg);-moz-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);-o-transform:rotate(241.2deg);transform:rotate(241.2deg)}.c100.p68 .bar{-webkit-transform:rotate(244.8deg);-moz-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);-o-transform:rotate(244.8deg);transform:rotate(244.8deg)}.c100.p69 .bar{-webkit-transform:rotate(248.4deg);-moz-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);-o-transform:rotate(248.4deg);transform:rotate(248.4deg)}.c100.p70 .bar{-webkit-transform:rotate(252deg);-moz-transform:rotate(252deg);-ms-transform:rotate(252deg);-o-transform:rotate(252deg);transform:rotate(252deg)}.c100.p71 .bar{-webkit-transform:rotate(255.6deg);-moz-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);-o-transform:rotate(255.6deg);transform:rotate(255.6deg)}.c100.p72 .bar{-webkit-transform:rotate(259.2deg);-moz-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);-o-transform:rotate(259.2deg);transform:rotate(259.2deg)}.c100.p73 .bar{-webkit-transform:rotate(262.8deg);-moz-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);-o-transform:rotate(262.8deg);transform:rotate(262.8deg)}.c100.p74 .bar{-webkit-transform:rotate(266.4deg);-moz-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);-o-transform:rotate(266.4deg);transform:rotate(266.4deg)}.c100.p75 .bar{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.c100.p76 .bar{-webkit-transform:rotate(273.6deg);-moz-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);-o-transform:rotate(273.6deg);transform:rotate(273.6deg)}.c100.p77 .bar{-webkit-transform:rotate(277.2deg);-moz-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);-o-transform:rotate(277.2deg);transform:rotate(277.2deg)}.c100.p78 .bar{-webkit-transform:rotate(280.8deg);-moz-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);-o-transform:rotate(280.8deg);transform:rotate(280.8deg)}.c100.p79 .bar{-webkit-transform:rotate(284.4deg);-moz-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);-o-transform:rotate(284.4deg);transform:rotate(284.4deg)}.c100.p80 .bar{-webkit-transform:rotate(288deg);-moz-transform:rotate(288deg);-ms-transform:rotate(288deg);-o-transform:rotate(288deg);transform:rotate(288deg)}.c100.p81 .bar{-webkit-transform:rotate(291.6deg);-moz-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);-o-transform:rotate(291.6deg);transform:rotate(291.6deg)}.c100.p82 .bar{-webkit-transform:rotate(295.2deg);-moz-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);-o-transform:rotate(295.2deg);transform:rotate(295.2deg)}.c100.p83 .bar{-webkit-transform:rotate(298.8deg);-moz-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);-o-transform:rotate(298.8deg);transform:rotate(298.8deg)}.c100.p84 .bar{-webkit-transform:rotate(302.4deg);-moz-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);-o-transform:rotate(302.4deg);transform:rotate(302.4deg)}.c100.p85 .bar{-webkit-transform:rotate(306deg);-moz-transform:rotate(306deg);-ms-transform:rotate(306deg);-o-transform:rotate(306deg);transform:rotate(306deg)}.c100.p86 .bar{-webkit-transform:rotate(309.6deg);-moz-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);-o-transform:rotate(309.6deg);transform:rotate(309.6deg)}.c100.p87 .bar{-webkit-transform:rotate(313.2deg);-moz-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);-o-transform:rotate(313.2deg);transform:rotate(313.2deg)}.c100.p88 .bar{-webkit-transform:rotate(316.8deg);-moz-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);-o-transform:rotate(316.8deg);transform:rotate(316.8deg)}.c100.p89 .bar{-webkit-transform:rotate(320.4deg);-moz-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);-o-transform:rotate(320.4deg);transform:rotate(320.4deg)}.c100.p90 .bar{-webkit-transform:rotate(324deg);-moz-transform:rotate(324deg);-ms-transform:rotate(324deg);-o-transform:rotate(324deg);transform:rotate(324deg)}.c100.p91 .bar{-webkit-transform:rotate(327.6deg);-moz-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);-o-transform:rotate(327.6deg);transform:rotate(327.6deg)}.c100.p92 .bar{-webkit-transform:rotate(331.2deg);-moz-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);-o-transform:rotate(331.2deg);transform:rotate(331.2deg)}.c100.p93 .bar{-webkit-transform:rotate(334.8deg);-moz-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);-o-transform:rotate(334.8deg);transform:rotate(334.8deg)}.c100.p94 .bar{-webkit-transform:rotate(338.4deg);-moz-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);-o-transform:rotate(338.4deg);transform:rotate(338.4deg)}.c100.p95 .bar{-webkit-transform:rotate(342deg);-moz-transform:rotate(342deg);-ms-transform:rotate(342deg);-o-transform:rotate(342deg);transform:rotate(342deg)}.c100.p96 .bar{-webkit-transform:rotate(345.6deg);-moz-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);-o-transform:rotate(345.6deg);transform:rotate(345.6deg)}.c100.p97 .bar{-webkit-transform:rotate(349.2deg);-moz-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);-o-transform:rotate(349.2deg);transform:rotate(349.2deg)}.c100.p98 .bar{-webkit-transform:rotate(352.8deg);-moz-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);-o-transform:rotate(352.8deg);transform:rotate(352.8deg)}.c100.p99 .bar{-webkit-transform:rotate(356.4deg);-moz-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);-o-transform:rotate(356.4deg);transform:rotate(356.4deg)}.c100.p100 .bar{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}.c100:hover{cursor:default}.c100:hover>span{width:3.33em;line-height:3.33em;font-size:.3em;color:#307bbb}.c100:hover:after{top:.04em;left:.04em;width:.92em;height:.92em}.c100.dark{background-color:#0077c2}.c100.dark .bar,.c100.dark .fill{border-color:#80d6ff !important}.c100.dark>span{color:#0077c2}.c100.dark:after{background-color:#111}.c100.dark:hover>span{color:#80d6ff}.c100.error{background-color:#700}.c100.error .bar,.c100.error .fill{border-color:#d00 !important}.c100.error:hover>span{color:#d00}.c100.error>span{color:#700}.c100.success{background-color:#000}.c100.success .bar,.c100.success .fill{border-color:lime !important}.c100.success:hover>span{color:lime}.c100.success>span{color:#090}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}h1{width:100%;margin-top:12px;text-align:center}body{font-family:sans-serif;background:url(/static/imgs/grain_background.png);background-color:#111;background-repeat:repeat;color:#fff}button,a.button{box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);border:1px solid #0077c2;background-color:#0077c2;color:#fff;font-size:1rem;padding:.75rem;margin-bottom:12px;display:inline-block;cursor:pointer}button+button,button+a.button,a.button+button,a.button+a.button{margin-left:12px}input,textarea,select{border:none;background-color:#111;color:#fff;font-size:1rem;display:inline-block;padding:.25rem}input::placeholder,textarea::placeholder,select::placeholder{color:#999}input[type=submit]{cursor:pointer;background-color:#0077c2}form input,form textarea,form select{z-index:20;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);padding:.75rem;width:100%}form input~label,form textarea~label,form select~label{margin-top:24px}form textarea{background-color:#111;height:50vh}form label{z-index:30;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);background-color:#0077c2;width:100%;line-height:44px;display:inline-block;padding:4px 12px 4px;margin-top:12px}.error-list ul li{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);list-style:none;background-color:#998100;padding:.5rem;margin-bottom:.5rem}.error-list ul li.success{background-color:#0077c2}.split{display:grid;grid-template-columns:1fr 1fr}.test-case{outline:none;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);resize:none;border:none;height:200px;padding:8px;background-color:#111;color:#fff}.test-case:first-child{border-right:2px solid #0077c2}.header-line,.option-line{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#0077c2;padding:4px 12px 4px;margin-top:12px;display:inline-block;width:100%}.header-line>*,.option-line>*{line-height:44px;display:inline-block}.option-line{display:grid;grid-template-columns:1fr 1fr}.option-line>*:last-child{text-align:right}.button-list>*{margin:0px 8px 0px;background-color:#42a5f5;box-shadow:none;border:none;color:#fff;font-size:1rem;line-height:1.2rem;padding:4px 12px 4px;display:inline-block;cursor:pointer}.sidebar-page-container{display:grid;grid-template-columns:minmax(250px, 1fr) 5fr}#code-editor{position:relative;width:100%;min-height:56rem}.problem-description{font-size:1.2rem}/*# sourceMappingURL=core.css.map */ +.navbar{z-index:10000;width:100%;background:#0077c2;height:47px;position:sticky;top:0;box-shadow:0px 0px 10px 0px rgba(0,0,0,.7);display:grid;grid-template-columns:1fr 6fr 1fr}.navbar .navbar-logo{padding-left:8px;text-align:center}.navbar .navbar-logo img{max-height:calc(47px - 2px);display:inline}.navbar ul{display:block;text-align:center;font-size:0}.navbar ul a li{margin:0;display:inline-block;cursor:pointer;font-size:24px;list-style:none;line-height:40px;padding-left:30px;padding-right:30px;padding-top:4px;color:#f2f2f2;border-top-color:#0077c2;transition:200ms all}.navbar ul a li.selected,.navbar ul a li:hover{border-bottom:2px solid #ffe766;color:#fff}.navbar .navbar-username{position:relative;max-height:47px;font-size:24px;line-height:40px;text-align:center;padding-top:4px;cursor:pointer;background-color:#00385c;transition:background-color 150ms}.navbar .navbar-username:hover,.navbar .navbar-username.selected{background-color:#00588f}.navbar .navbar-username:hover .navbar-username-dropdown,.navbar .navbar-username.selected .navbar-username-dropdown{display:block}.navbar .navbar-username a{display:block;width:100%}.navbar .navbar-username .navbar-username-dropdown{display:none;position:absolute;top:100%;left:0;width:100%}.navbar .navbar-username .navbar-username-dropdown .navbar-username-dropdown-option{border-bottom:1px solid #00588f;background:#00385c}.navbar .navbar-username .navbar-username-dropdown .navbar-username-dropdown-option:last-child{border-bottom:none}.navbar .navbar-username .navbar-username-dropdown .navbar-username-dropdown-option:hover{background-color:#00588f}.content,.error-list{width:100%;padding:10px 10%}.right{float:right}.left{float:left}.hidden{visibility:hidden}a{text-decoration:none;color:inherit}.split-2{display:grid;grid-template-columns:repeat(2, 1fr)}.split-2>*:first-child{margin-right:12px}.split-2>*:last-child{margin-left:12px}.split-3{display:grid;grid-template-columns:repeat(3, 1fr)}.split-4{display:grid;grid-template-columns:repeat(4, 1fr)}.split-5{display:grid;grid-template-columns:repeat(5, 1fr)}.split-6{display:grid;grid-template-columns:repeat(6, 1fr)}.split-lr{display:grid;grid-template-columns:1fr 1fr}.split-lr>*:first-child{text-align:left}.split-lr>*:last-child{text-align:right}.split-1-1{display:grid;grid-template-columns:1fr 1fr}.split-1-2{display:grid;grid-template-columns:1fr 2fr}.split-1-3{display:grid;grid-template-columns:1fr 3fr}.split-1-4{display:grid;grid-template-columns:1fr 4fr}.split-1-5{display:grid;grid-template-columns:1fr 5fr}.split-2-1{display:grid;grid-template-columns:2fr 1fr}.split-2-2{display:grid;grid-template-columns:2fr 2fr}.split-2-3{display:grid;grid-template-columns:2fr 3fr}.split-2-4{display:grid;grid-template-columns:2fr 4fr}.split-2-5{display:grid;grid-template-columns:2fr 5fr}.split-3-1{display:grid;grid-template-columns:3fr 1fr}.split-3-2{display:grid;grid-template-columns:3fr 2fr}.split-3-3{display:grid;grid-template-columns:3fr 3fr}.split-3-4{display:grid;grid-template-columns:3fr 4fr}.split-3-5{display:grid;grid-template-columns:3fr 5fr}.split-4-1{display:grid;grid-template-columns:4fr 1fr}.split-4-2{display:grid;grid-template-columns:4fr 2fr}.split-4-3{display:grid;grid-template-columns:4fr 3fr}.split-4-4{display:grid;grid-template-columns:4fr 4fr}.split-4-5{display:grid;grid-template-columns:4fr 5fr}.split-5-1{display:grid;grid-template-columns:5fr 1fr}.split-5-2{display:grid;grid-template-columns:5fr 2fr}.split-5-3{display:grid;grid-template-columns:5fr 3fr}.split-5-4{display:grid;grid-template-columns:5fr 4fr}.split-5-5{display:grid;grid-template-columns:5fr 5fr}pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);font-size:1rem}pre .hljs-ln td{padding-right:8px}pre .hljs-ln-line{max-width:200px !important}.fixed-half-split{display:grid;grid-template-columns:275px 1fr}.tabbed-split{display:grid !important}.tabbed-split.tab-12{grid-template-columns:12px 1fr}.tabbed-split.tab-16{grid-template-columns:16px 1fr}.tabbed-split.tab-24{grid-template-columns:24px 1fr}.tabbed-split.tab-32{grid-template-columns:32px 1fr}.tabbed-split.tab-48{grid-template-columns:48px 1fr}.tabbed-split.tab-64{grid-template-columns:64px 1fr}.tabbed-split.primary>span{background-color:#42a5f5}.tabbed-split.primary-light>span{background-color:#80d6ff}.tabbed-split.primary-dark>span{background-color:#0077c2}.tabbed-split.secondary>span{background-color:gold}.tabbed-split.secondary-light>span{background-color:#ffe766}.tabbed-split.secondary-dark>span{background-color:#998100}.tabbed-split.success>span{background-color:lime}.tabbed-split.error>span{background-color:#d00}.tabbed-split.error-light>span{background-color:#f44}.tabbed-split.error-dark>span{background-color:#700}.box,.problem-description .example-container .example>pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#111}.box .highlight,.problem-description .example-container .example>pre .highlight{background-color:#111;transition:background .2s}.box .highlight:hover,.problem-description .example-container .example>pre .highlight:hover{background-color:#333}.w50{width:50%}.w100{width:100%}.pad-1{padding:1px !important}.pad-l-1{padding-left:1px !important}.pad-r-1{padding-right:1px !important}.pad-t-1{padding-top:1px !important}.pad-b-1{padding-bottom:1px !important}.mar-1{margin:1px !important}.mar-l-1{margin-left:1px !important}.mar-r-1{margin-right:1px !important}.mar-t-1{margin-top:1px !important}.mar-b-1{margin-bottom:1px !important}.pad-2{padding:2px !important}.pad-l-2{padding-left:2px !important}.pad-r-2{padding-right:2px !important}.pad-t-2{padding-top:2px !important}.pad-b-2{padding-bottom:2px !important}.mar-2{margin:2px !important}.mar-l-2{margin-left:2px !important}.mar-r-2{margin-right:2px !important}.mar-t-2{margin-top:2px !important}.mar-b-2{margin-bottom:2px !important}.pad-3{padding:3px !important}.pad-l-3{padding-left:3px !important}.pad-r-3{padding-right:3px !important}.pad-t-3{padding-top:3px !important}.pad-b-3{padding-bottom:3px !important}.mar-3{margin:3px !important}.mar-l-3{margin-left:3px !important}.mar-r-3{margin-right:3px !important}.mar-t-3{margin-top:3px !important}.mar-b-3{margin-bottom:3px !important}.pad-4{padding:4px !important}.pad-l-4{padding-left:4px !important}.pad-r-4{padding-right:4px !important}.pad-t-4{padding-top:4px !important}.pad-b-4{padding-bottom:4px !important}.mar-4{margin:4px !important}.mar-l-4{margin-left:4px !important}.mar-r-4{margin-right:4px !important}.mar-t-4{margin-top:4px !important}.mar-b-4{margin-bottom:4px !important}.pad-5{padding:5px !important}.pad-l-5{padding-left:5px !important}.pad-r-5{padding-right:5px !important}.pad-t-5{padding-top:5px !important}.pad-b-5{padding-bottom:5px !important}.mar-5{margin:5px !important}.mar-l-5{margin-left:5px !important}.mar-r-5{margin-right:5px !important}.mar-t-5{margin-top:5px !important}.mar-b-5{margin-bottom:5px !important}.pad-6{padding:6px !important}.pad-l-6{padding-left:6px !important}.pad-r-6{padding-right:6px !important}.pad-t-6{padding-top:6px !important}.pad-b-6{padding-bottom:6px !important}.mar-6{margin:6px !important}.mar-l-6{margin-left:6px !important}.mar-r-6{margin-right:6px !important}.mar-t-6{margin-top:6px !important}.mar-b-6{margin-bottom:6px !important}.pad-7{padding:7px !important}.pad-l-7{padding-left:7px !important}.pad-r-7{padding-right:7px !important}.pad-t-7{padding-top:7px !important}.pad-b-7{padding-bottom:7px !important}.mar-7{margin:7px !important}.mar-l-7{margin-left:7px !important}.mar-r-7{margin-right:7px !important}.mar-t-7{margin-top:7px !important}.mar-b-7{margin-bottom:7px !important}.pad-8{padding:8px !important}.pad-l-8{padding-left:8px !important}.pad-r-8{padding-right:8px !important}.pad-t-8{padding-top:8px !important}.pad-b-8{padding-bottom:8px !important}.mar-8{margin:8px !important}.mar-l-8{margin-left:8px !important}.mar-r-8{margin-right:8px !important}.mar-t-8{margin-top:8px !important}.mar-b-8{margin-bottom:8px !important}.pad-9{padding:9px !important}.pad-l-9{padding-left:9px !important}.pad-r-9{padding-right:9px !important}.pad-t-9{padding-top:9px !important}.pad-b-9{padding-bottom:9px !important}.mar-9{margin:9px !important}.mar-l-9{margin-left:9px !important}.mar-r-9{margin-right:9px !important}.mar-t-9{margin-top:9px !important}.mar-b-9{margin-bottom:9px !important}.pad-10{padding:10px !important}.pad-l-10{padding-left:10px !important}.pad-r-10{padding-right:10px !important}.pad-t-10{padding-top:10px !important}.pad-b-10{padding-bottom:10px !important}.mar-10{margin:10px !important}.mar-l-10{margin-left:10px !important}.mar-r-10{margin-right:10px !important}.mar-t-10{margin-top:10px !important}.mar-b-10{margin-bottom:10px !important}.pad-11{padding:11px !important}.pad-l-11{padding-left:11px !important}.pad-r-11{padding-right:11px !important}.pad-t-11{padding-top:11px !important}.pad-b-11{padding-bottom:11px !important}.mar-11{margin:11px !important}.mar-l-11{margin-left:11px !important}.mar-r-11{margin-right:11px !important}.mar-t-11{margin-top:11px !important}.mar-b-11{margin-bottom:11px !important}.pad-12{padding:12px !important}.pad-l-12{padding-left:12px !important}.pad-r-12{padding-right:12px !important}.pad-t-12{padding-top:12px !important}.pad-b-12{padding-bottom:12px !important}.mar-12{margin:12px !important}.mar-l-12{margin-left:12px !important}.mar-r-12{margin-right:12px !important}.mar-t-12{margin-top:12px !important}.mar-b-12{margin-bottom:12px !important}.pad-13{padding:13px !important}.pad-l-13{padding-left:13px !important}.pad-r-13{padding-right:13px !important}.pad-t-13{padding-top:13px !important}.pad-b-13{padding-bottom:13px !important}.mar-13{margin:13px !important}.mar-l-13{margin-left:13px !important}.mar-r-13{margin-right:13px !important}.mar-t-13{margin-top:13px !important}.mar-b-13{margin-bottom:13px !important}.pad-14{padding:14px !important}.pad-l-14{padding-left:14px !important}.pad-r-14{padding-right:14px !important}.pad-t-14{padding-top:14px !important}.pad-b-14{padding-bottom:14px !important}.mar-14{margin:14px !important}.mar-l-14{margin-left:14px !important}.mar-r-14{margin-right:14px !important}.mar-t-14{margin-top:14px !important}.mar-b-14{margin-bottom:14px !important}.pad-15{padding:15px !important}.pad-l-15{padding-left:15px !important}.pad-r-15{padding-right:15px !important}.pad-t-15{padding-top:15px !important}.pad-b-15{padding-bottom:15px !important}.mar-15{margin:15px !important}.mar-l-15{margin-left:15px !important}.mar-r-15{margin-right:15px !important}.mar-t-15{margin-top:15px !important}.mar-b-15{margin-bottom:15px !important}.pad-16{padding:16px !important}.pad-l-16{padding-left:16px !important}.pad-r-16{padding-right:16px !important}.pad-t-16{padding-top:16px !important}.pad-b-16{padding-bottom:16px !important}.mar-16{margin:16px !important}.mar-l-16{margin-left:16px !important}.mar-r-16{margin-right:16px !important}.mar-t-16{margin-top:16px !important}.mar-b-16{margin-bottom:16px !important}.pad-17{padding:17px !important}.pad-l-17{padding-left:17px !important}.pad-r-17{padding-right:17px !important}.pad-t-17{padding-top:17px !important}.pad-b-17{padding-bottom:17px !important}.mar-17{margin:17px !important}.mar-l-17{margin-left:17px !important}.mar-r-17{margin-right:17px !important}.mar-t-17{margin-top:17px !important}.mar-b-17{margin-bottom:17px !important}.pad-18{padding:18px !important}.pad-l-18{padding-left:18px !important}.pad-r-18{padding-right:18px !important}.pad-t-18{padding-top:18px !important}.pad-b-18{padding-bottom:18px !important}.mar-18{margin:18px !important}.mar-l-18{margin-left:18px !important}.mar-r-18{margin-right:18px !important}.mar-t-18{margin-top:18px !important}.mar-b-18{margin-bottom:18px !important}.pad-19{padding:19px !important}.pad-l-19{padding-left:19px !important}.pad-r-19{padding-right:19px !important}.pad-t-19{padding-top:19px !important}.pad-b-19{padding-bottom:19px !important}.mar-19{margin:19px !important}.mar-l-19{margin-left:19px !important}.mar-r-19{margin-right:19px !important}.mar-t-19{margin-top:19px !important}.mar-b-19{margin-bottom:19px !important}.pad-20{padding:20px !important}.pad-l-20{padding-left:20px !important}.pad-r-20{padding-right:20px !important}.pad-t-20{padding-top:20px !important}.pad-b-20{padding-bottom:20px !important}.mar-20{margin:20px !important}.mar-l-20{margin-left:20px !important}.mar-r-20{margin-right:20px !important}.mar-t-20{margin-top:20px !important}.mar-b-20{margin-bottom:20px !important}.pad-21{padding:21px !important}.pad-l-21{padding-left:21px !important}.pad-r-21{padding-right:21px !important}.pad-t-21{padding-top:21px !important}.pad-b-21{padding-bottom:21px !important}.mar-21{margin:21px !important}.mar-l-21{margin-left:21px !important}.mar-r-21{margin-right:21px !important}.mar-t-21{margin-top:21px !important}.mar-b-21{margin-bottom:21px !important}.pad-22{padding:22px !important}.pad-l-22{padding-left:22px !important}.pad-r-22{padding-right:22px !important}.pad-t-22{padding-top:22px !important}.pad-b-22{padding-bottom:22px !important}.mar-22{margin:22px !important}.mar-l-22{margin-left:22px !important}.mar-r-22{margin-right:22px !important}.mar-t-22{margin-top:22px !important}.mar-b-22{margin-bottom:22px !important}.pad-23{padding:23px !important}.pad-l-23{padding-left:23px !important}.pad-r-23{padding-right:23px !important}.pad-t-23{padding-top:23px !important}.pad-b-23{padding-bottom:23px !important}.mar-23{margin:23px !important}.mar-l-23{margin-left:23px !important}.mar-r-23{margin-right:23px !important}.mar-t-23{margin-top:23px !important}.mar-b-23{margin-bottom:23px !important}.pad-24{padding:24px !important}.pad-l-24{padding-left:24px !important}.pad-r-24{padding-right:24px !important}.pad-t-24{padding-top:24px !important}.pad-b-24{padding-bottom:24px !important}.mar-24{margin:24px !important}.mar-l-24{margin-left:24px !important}.mar-r-24{margin-right:24px !important}.mar-t-24{margin-top:24px !important}.mar-b-24{margin-bottom:24px !important}.pad-25{padding:25px !important}.pad-l-25{padding-left:25px !important}.pad-r-25{padding-right:25px !important}.pad-t-25{padding-top:25px !important}.pad-b-25{padding-bottom:25px !important}.mar-25{margin:25px !important}.mar-l-25{margin-left:25px !important}.mar-r-25{margin-right:25px !important}.mar-t-25{margin-top:25px !important}.mar-b-25{margin-bottom:25px !important}.pad-26{padding:26px !important}.pad-l-26{padding-left:26px !important}.pad-r-26{padding-right:26px !important}.pad-t-26{padding-top:26px !important}.pad-b-26{padding-bottom:26px !important}.mar-26{margin:26px !important}.mar-l-26{margin-left:26px !important}.mar-r-26{margin-right:26px !important}.mar-t-26{margin-top:26px !important}.mar-b-26{margin-bottom:26px !important}.pad-27{padding:27px !important}.pad-l-27{padding-left:27px !important}.pad-r-27{padding-right:27px !important}.pad-t-27{padding-top:27px !important}.pad-b-27{padding-bottom:27px !important}.mar-27{margin:27px !important}.mar-l-27{margin-left:27px !important}.mar-r-27{margin-right:27px !important}.mar-t-27{margin-top:27px !important}.mar-b-27{margin-bottom:27px !important}.pad-28{padding:28px !important}.pad-l-28{padding-left:28px !important}.pad-r-28{padding-right:28px !important}.pad-t-28{padding-top:28px !important}.pad-b-28{padding-bottom:28px !important}.mar-28{margin:28px !important}.mar-l-28{margin-left:28px !important}.mar-r-28{margin-right:28px !important}.mar-t-28{margin-top:28px !important}.mar-b-28{margin-bottom:28px !important}.pad-29{padding:29px !important}.pad-l-29{padding-left:29px !important}.pad-r-29{padding-right:29px !important}.pad-t-29{padding-top:29px !important}.pad-b-29{padding-bottom:29px !important}.mar-29{margin:29px !important}.mar-l-29{margin-left:29px !important}.mar-r-29{margin-right:29px !important}.mar-t-29{margin-top:29px !important}.mar-b-29{margin-bottom:29px !important}.pad-30{padding:30px !important}.pad-l-30{padding-left:30px !important}.pad-r-30{padding-right:30px !important}.pad-t-30{padding-top:30px !important}.pad-b-30{padding-bottom:30px !important}.mar-30{margin:30px !important}.mar-l-30{margin-left:30px !important}.mar-r-30{margin-right:30px !important}.mar-t-30{margin-top:30px !important}.mar-b-30{margin-bottom:30px !important}.pad-31{padding:31px !important}.pad-l-31{padding-left:31px !important}.pad-r-31{padding-right:31px !important}.pad-t-31{padding-top:31px !important}.pad-b-31{padding-bottom:31px !important}.mar-31{margin:31px !important}.mar-l-31{margin-left:31px !important}.mar-r-31{margin-right:31px !important}.mar-t-31{margin-top:31px !important}.mar-b-31{margin-bottom:31px !important}.pad-32{padding:32px !important}.pad-l-32{padding-left:32px !important}.pad-r-32{padding-right:32px !important}.pad-t-32{padding-top:32px !important}.pad-b-32{padding-bottom:32px !important}.mar-32{margin:32px !important}.mar-l-32{margin-left:32px !important}.mar-r-32{margin-right:32px !important}.mar-t-32{margin-top:32px !important}.mar-b-32{margin-bottom:32px !important}.pad-33{padding:33px !important}.pad-l-33{padding-left:33px !important}.pad-r-33{padding-right:33px !important}.pad-t-33{padding-top:33px !important}.pad-b-33{padding-bottom:33px !important}.mar-33{margin:33px !important}.mar-l-33{margin-left:33px !important}.mar-r-33{margin-right:33px !important}.mar-t-33{margin-top:33px !important}.mar-b-33{margin-bottom:33px !important}.pad-34{padding:34px !important}.pad-l-34{padding-left:34px !important}.pad-r-34{padding-right:34px !important}.pad-t-34{padding-top:34px !important}.pad-b-34{padding-bottom:34px !important}.mar-34{margin:34px !important}.mar-l-34{margin-left:34px !important}.mar-r-34{margin-right:34px !important}.mar-t-34{margin-top:34px !important}.mar-b-34{margin-bottom:34px !important}.pad-35{padding:35px !important}.pad-l-35{padding-left:35px !important}.pad-r-35{padding-right:35px !important}.pad-t-35{padding-top:35px !important}.pad-b-35{padding-bottom:35px !important}.mar-35{margin:35px !important}.mar-l-35{margin-left:35px !important}.mar-r-35{margin-right:35px !important}.mar-t-35{margin-top:35px !important}.mar-b-35{margin-bottom:35px !important}.pad-36{padding:36px !important}.pad-l-36{padding-left:36px !important}.pad-r-36{padding-right:36px !important}.pad-t-36{padding-top:36px !important}.pad-b-36{padding-bottom:36px !important}.mar-36{margin:36px !important}.mar-l-36{margin-left:36px !important}.mar-r-36{margin-right:36px !important}.mar-t-36{margin-top:36px !important}.mar-b-36{margin-bottom:36px !important}.pad-37{padding:37px !important}.pad-l-37{padding-left:37px !important}.pad-r-37{padding-right:37px !important}.pad-t-37{padding-top:37px !important}.pad-b-37{padding-bottom:37px !important}.mar-37{margin:37px !important}.mar-l-37{margin-left:37px !important}.mar-r-37{margin-right:37px !important}.mar-t-37{margin-top:37px !important}.mar-b-37{margin-bottom:37px !important}.pad-38{padding:38px !important}.pad-l-38{padding-left:38px !important}.pad-r-38{padding-right:38px !important}.pad-t-38{padding-top:38px !important}.pad-b-38{padding-bottom:38px !important}.mar-38{margin:38px !important}.mar-l-38{margin-left:38px !important}.mar-r-38{margin-right:38px !important}.mar-t-38{margin-top:38px !important}.mar-b-38{margin-bottom:38px !important}.pad-39{padding:39px !important}.pad-l-39{padding-left:39px !important}.pad-r-39{padding-right:39px !important}.pad-t-39{padding-top:39px !important}.pad-b-39{padding-bottom:39px !important}.mar-39{margin:39px !important}.mar-l-39{margin-left:39px !important}.mar-r-39{margin-right:39px !important}.mar-t-39{margin-top:39px !important}.mar-b-39{margin-bottom:39px !important}.pad-40{padding:40px !important}.pad-l-40{padding-left:40px !important}.pad-r-40{padding-right:40px !important}.pad-t-40{padding-top:40px !important}.pad-b-40{padding-bottom:40px !important}.mar-40{margin:40px !important}.mar-l-40{margin-left:40px !important}.mar-r-40{margin-right:40px !important}.mar-t-40{margin-top:40px !important}.mar-b-40{margin-bottom:40px !important}.pad-41{padding:41px !important}.pad-l-41{padding-left:41px !important}.pad-r-41{padding-right:41px !important}.pad-t-41{padding-top:41px !important}.pad-b-41{padding-bottom:41px !important}.mar-41{margin:41px !important}.mar-l-41{margin-left:41px !important}.mar-r-41{margin-right:41px !important}.mar-t-41{margin-top:41px !important}.mar-b-41{margin-bottom:41px !important}.pad-42{padding:42px !important}.pad-l-42{padding-left:42px !important}.pad-r-42{padding-right:42px !important}.pad-t-42{padding-top:42px !important}.pad-b-42{padding-bottom:42px !important}.mar-42{margin:42px !important}.mar-l-42{margin-left:42px !important}.mar-r-42{margin-right:42px !important}.mar-t-42{margin-top:42px !important}.mar-b-42{margin-bottom:42px !important}.pad-43{padding:43px !important}.pad-l-43{padding-left:43px !important}.pad-r-43{padding-right:43px !important}.pad-t-43{padding-top:43px !important}.pad-b-43{padding-bottom:43px !important}.mar-43{margin:43px !important}.mar-l-43{margin-left:43px !important}.mar-r-43{margin-right:43px !important}.mar-t-43{margin-top:43px !important}.mar-b-43{margin-bottom:43px !important}.pad-44{padding:44px !important}.pad-l-44{padding-left:44px !important}.pad-r-44{padding-right:44px !important}.pad-t-44{padding-top:44px !important}.pad-b-44{padding-bottom:44px !important}.mar-44{margin:44px !important}.mar-l-44{margin-left:44px !important}.mar-r-44{margin-right:44px !important}.mar-t-44{margin-top:44px !important}.mar-b-44{margin-bottom:44px !important}.pad-45{padding:45px !important}.pad-l-45{padding-left:45px !important}.pad-r-45{padding-right:45px !important}.pad-t-45{padding-top:45px !important}.pad-b-45{padding-bottom:45px !important}.mar-45{margin:45px !important}.mar-l-45{margin-left:45px !important}.mar-r-45{margin-right:45px !important}.mar-t-45{margin-top:45px !important}.mar-b-45{margin-bottom:45px !important}.pad-46{padding:46px !important}.pad-l-46{padding-left:46px !important}.pad-r-46{padding-right:46px !important}.pad-t-46{padding-top:46px !important}.pad-b-46{padding-bottom:46px !important}.mar-46{margin:46px !important}.mar-l-46{margin-left:46px !important}.mar-r-46{margin-right:46px !important}.mar-t-46{margin-top:46px !important}.mar-b-46{margin-bottom:46px !important}.pad-47{padding:47px !important}.pad-l-47{padding-left:47px !important}.pad-r-47{padding-right:47px !important}.pad-t-47{padding-top:47px !important}.pad-b-47{padding-bottom:47px !important}.mar-47{margin:47px !important}.mar-l-47{margin-left:47px !important}.mar-r-47{margin-right:47px !important}.mar-t-47{margin-top:47px !important}.mar-b-47{margin-bottom:47px !important}.pad-48{padding:48px !important}.pad-l-48{padding-left:48px !important}.pad-r-48{padding-right:48px !important}.pad-t-48{padding-top:48px !important}.pad-b-48{padding-bottom:48px !important}.mar-48{margin:48px !important}.mar-l-48{margin-left:48px !important}.mar-r-48{margin-right:48px !important}.mar-t-48{margin-top:48px !important}.mar-b-48{margin-bottom:48px !important}.pad-49{padding:49px !important}.pad-l-49{padding-left:49px !important}.pad-r-49{padding-right:49px !important}.pad-t-49{padding-top:49px !important}.pad-b-49{padding-bottom:49px !important}.mar-49{margin:49px !important}.mar-l-49{margin-left:49px !important}.mar-r-49{margin-right:49px !important}.mar-t-49{margin-top:49px !important}.mar-b-49{margin-bottom:49px !important}.ta-center{text-align:center}.bcolor-pl{background-color:#80d6ff}.bcolor-p{background-color:#42a5f5}.bcolor-pd{background-color:#0077c2}.bcolor-sl{background-color:#ffe766}.bcolor-s{background-color:gold}.bcolor-sd{background-color:#998100}.bcolor-c{background-color:#090}.bcolor-e{background-color:#f44}.problem-info{float:right;width:300px;position:relative;transition:left 1s ease-in-out}.problem-description h2{margin-top:24px}.problem-description .example-container{width:100%;display:block;float:right}.problem-description .example-container .example{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5)}.problem-description .example-container .example>pre{box-shadow:none;min-height:14rem;padding:12px;overflow:auto}.problem-description .example-container .example>pre:first-child{border-right:2px solid #888}.sidebar-problem-list{z-index:50;box-shadow:0 10px 0 0 transparent,0 10px 0 0 transparent,10px 0 0 0 transparent,0 8px 8px 2px rgba(0,0,0,.5);background:#003252;position:relative;min-height:calc(100vh - 47px);transition:left 500ms ease-in-out}.sidebar-problem-list .sidebar-problem{width:100%;display:grid;grid-template-columns:32px 1fr;border-left-width:24px;border-left-style:solid;border-left-color:#0077c2;transition:background-color 200ms ease-in-out;transition:width 200ms ease-in-out;background-color:inherit;cursor:pointer}.sidebar-problem-list .sidebar-problem[correct]{border-left-color:lime}.sidebar-problem-list .sidebar-problem[wrong]{border-left-color:red}.sidebar-problem-list .sidebar-problem[selected],.sidebar-problem-list .sidebar-problem:hover{width:calc(100% + 24px)}.sidebar-problem-list .sidebar-problem[selected]{background-color:#42a5f5 !important}.sidebar-problem-list .sidebar-problem:hover{background-color:#128ef2}.sidebar-problem-list .sidebar-problem-letter{text-align:center;background-color:#001929;padding-top:20px;padding-bottom:20px;font-size:1.2rem}.sidebar-problem-list .sidebar-problem-name{text-align:left;font-size:1.2rem;padding-left:5px;padding-top:20px;padding-bottom:20px;margin-left:10px;margin-right:10px}.progressbar{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background:#444;height:32px;width:100%}.progressbar .progressbar-meter{background:#ffe766;height:32px;transition:width ease-in-out 1s}.progressbar .progressbar-labels{position:relative;width:100%}.progressbar .progressbar-labels *{position:absolute}.progressbar .progressbar-labels :first-child{top:-20px;left:0}.progressbar .progressbar-labels :last-child{top:-20px;right:0}.leaderboard{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);text-align:center;font-size:1.2rem;position:relative}.leaderboard .placement,.leaderboard .placement-labels{position:absolute;width:100%;top:0;left:0;display:grid;grid-template-columns:1fr 7fr 10fr 3fr}.leaderboard .placement .problem,.leaderboard .placement-labels .problem{display:grid}.leaderboard .placement-labels{background:#42a5f5;font-size:1.4rem;padding:4px}.leaderboard .placement{transition:all 750ms ease-in-out;padding:0 4px;line-height:36px}.leaderboard .placement:nth-child(even){background:#0077c2}.leaderboard .placement:nth-child(odd){background:#00385c}.leaderboard .placement.user{background:#ffe766;color:#000}.leaderboard .placement :first-child{font-size:1.2rem}.leaderboard .placement .problem>div{padding:4px;line-height:18px}.leaderboard .placement .problem>div :first-child{font-size:1.2rem}.leaderboard .placement .problem>div :last-child{font-size:.8rem}.leaderboard .placement .problem>div.correct{background:#50ff50;color:#000}.leaderboard .placement .problem>div.wrong{background:#ff5050;color:#000}.leaderboard .placement .problem>div.attempted{background:#999;color:#000}.rect-auto,.c100.p100 .slice,.c100.p99 .slice,.c100.p98 .slice,.c100.p97 .slice,.c100.p96 .slice,.c100.p95 .slice,.c100.p94 .slice,.c100.p93 .slice,.c100.p92 .slice,.c100.p91 .slice,.c100.p90 .slice,.c100.p89 .slice,.c100.p88 .slice,.c100.p87 .slice,.c100.p86 .slice,.c100.p85 .slice,.c100.p84 .slice,.c100.p83 .slice,.c100.p82 .slice,.c100.p81 .slice,.c100.p80 .slice,.c100.p79 .slice,.c100.p78 .slice,.c100.p77 .slice,.c100.p76 .slice,.c100.p75 .slice,.c100.p74 .slice,.c100.p73 .slice,.c100.p72 .slice,.c100.p71 .slice,.c100.p70 .slice,.c100.p69 .slice,.c100.p68 .slice,.c100.p67 .slice,.c100.p66 .slice,.c100.p65 .slice,.c100.p64 .slice,.c100.p63 .slice,.c100.p62 .slice,.c100.p61 .slice,.c100.p60 .slice,.c100.p59 .slice,.c100.p58 .slice,.c100.p57 .slice,.c100.p56 .slice,.c100.p55 .slice,.c100.p54 .slice,.c100.p53 .slice,.c100.p52 .slice,.c100.p51 .slice{clip:rect(auto, auto, auto, auto)}.pie,.c100.p100 .fill,.c100.p99 .fill,.c100.p98 .fill,.c100.p97 .fill,.c100.p96 .fill,.c100.p95 .fill,.c100.p94 .fill,.c100.p93 .fill,.c100.p92 .fill,.c100.p91 .fill,.c100.p90 .fill,.c100.p89 .fill,.c100.p88 .fill,.c100.p87 .fill,.c100.p86 .fill,.c100.p85 .fill,.c100.p84 .fill,.c100.p83 .fill,.c100.p82 .fill,.c100.p81 .fill,.c100.p80 .fill,.c100.p79 .fill,.c100.p78 .fill,.c100.p77 .fill,.c100.p76 .fill,.c100.p75 .fill,.c100.p74 .fill,.c100.p73 .fill,.c100.p72 .fill,.c100.p71 .fill,.c100.p70 .fill,.c100.p69 .fill,.c100.p68 .fill,.c100.p67 .fill,.c100.p66 .fill,.c100.p65 .fill,.c100.p64 .fill,.c100.p63 .fill,.c100.p62 .fill,.c100.p61 .fill,.c100.p60 .fill,.c100.p59 .fill,.c100.p58 .fill,.c100.p57 .fill,.c100.p56 .fill,.c100.p55 .fill,.c100.p54 .fill,.c100.p53 .fill,.c100.p52 .fill,.c100.p51 .fill,.c100 .bar{position:absolute;border:.08em solid #307bbb;width:.84em;height:.84em;clip:rect(0em, 0.5em, 1em, 0em);border-radius:50%;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.pie-fill,.c100.p100 .fill,.c100.p100.bar:after,.c100.p99 .fill,.c100.p99.bar:after,.c100.p98 .fill,.c100.p98.bar:after,.c100.p97 .fill,.c100.p97.bar:after,.c100.p96 .fill,.c100.p96.bar:after,.c100.p95 .fill,.c100.p95.bar:after,.c100.p94 .fill,.c100.p94.bar:after,.c100.p93 .fill,.c100.p93.bar:after,.c100.p92 .fill,.c100.p92.bar:after,.c100.p91 .fill,.c100.p91.bar:after,.c100.p90 .fill,.c100.p90.bar:after,.c100.p89 .fill,.c100.p89.bar:after,.c100.p88 .fill,.c100.p88.bar:after,.c100.p87 .fill,.c100.p87.bar:after,.c100.p86 .fill,.c100.p86.bar:after,.c100.p85 .fill,.c100.p85.bar:after,.c100.p84 .fill,.c100.p84.bar:after,.c100.p83 .fill,.c100.p83.bar:after,.c100.p82 .fill,.c100.p82.bar:after,.c100.p81 .fill,.c100.p81.bar:after,.c100.p80 .fill,.c100.p80.bar:after,.c100.p79 .fill,.c100.p79.bar:after,.c100.p78 .fill,.c100.p78.bar:after,.c100.p77 .fill,.c100.p77.bar:after,.c100.p76 .fill,.c100.p76.bar:after,.c100.p75 .fill,.c100.p75.bar:after,.c100.p74 .fill,.c100.p74.bar:after,.c100.p73 .fill,.c100.p73.bar:after,.c100.p72 .fill,.c100.p72.bar:after,.c100.p71 .fill,.c100.p71.bar:after,.c100.p70 .fill,.c100.p70.bar:after,.c100.p69 .fill,.c100.p69.bar:after,.c100.p68 .fill,.c100.p68.bar:after,.c100.p67 .fill,.c100.p67.bar:after,.c100.p66 .fill,.c100.p66.bar:after,.c100.p65 .fill,.c100.p65.bar:after,.c100.p64 .fill,.c100.p64.bar:after,.c100.p63 .fill,.c100.p63.bar:after,.c100.p62 .fill,.c100.p62.bar:after,.c100.p61 .fill,.c100.p61.bar:after,.c100.p60 .fill,.c100.p60.bar:after,.c100.p59 .fill,.c100.p59.bar:after,.c100.p58 .fill,.c100.p58.bar:after,.c100.p57 .fill,.c100.p57.bar:after,.c100.p56 .fill,.c100.p56.bar:after,.c100.p55 .fill,.c100.p55.bar:after,.c100.p54 .fill,.c100.p54.bar:after,.c100.p53 .fill,.c100.p53.bar:after,.c100.p52 .fill,.c100.p52.bar:after,.c100.p51 .fill,.c100.p51.bar:after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100{position:relative;font-size:120px;width:1em;height:1em;border-radius:50%;float:left;background-color:#ccc}.c100 *,.c100 *:before,.c100 *:after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.c100.center{float:none;margin:0 auto}.c100.big{font-size:240px}.c100.small{font-size:80px}.c100>span{position:absolute;width:100%;z-index:1;left:0;top:0;width:5em;line-height:5em;font-size:.2em;color:#ccc;display:block;text-align:center;white-space:nowrap;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.c100:after{position:absolute;top:.08em;left:.08em;display:block;content:" ";border-radius:50%;background-color:#f5f5f5;width:.84em;height:.84em;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-in;-moz-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.c100 .slice{position:absolute;width:1em;height:1em;clip:rect(0em, 1em, 1em, 0.5em)}.c100.p1 .bar{-webkit-transform:rotate(3.6deg);-moz-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);-o-transform:rotate(3.6deg);transform:rotate(3.6deg)}.c100.p2 .bar{-webkit-transform:rotate(7.2deg);-moz-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);-o-transform:rotate(7.2deg);transform:rotate(7.2deg)}.c100.p3 .bar{-webkit-transform:rotate(10.8deg);-moz-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);-o-transform:rotate(10.8deg);transform:rotate(10.8deg)}.c100.p4 .bar{-webkit-transform:rotate(14.4deg);-moz-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);-o-transform:rotate(14.4deg);transform:rotate(14.4deg)}.c100.p5 .bar{-webkit-transform:rotate(18deg);-moz-transform:rotate(18deg);-ms-transform:rotate(18deg);-o-transform:rotate(18deg);transform:rotate(18deg)}.c100.p6 .bar{-webkit-transform:rotate(21.6deg);-moz-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);-o-transform:rotate(21.6deg);transform:rotate(21.6deg)}.c100.p7 .bar{-webkit-transform:rotate(25.2deg);-moz-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);-o-transform:rotate(25.2deg);transform:rotate(25.2deg)}.c100.p8 .bar{-webkit-transform:rotate(28.8deg);-moz-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);-o-transform:rotate(28.8deg);transform:rotate(28.8deg)}.c100.p9 .bar{-webkit-transform:rotate(32.4deg);-moz-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);-o-transform:rotate(32.4deg);transform:rotate(32.4deg)}.c100.p10 .bar{-webkit-transform:rotate(36deg);-moz-transform:rotate(36deg);-ms-transform:rotate(36deg);-o-transform:rotate(36deg);transform:rotate(36deg)}.c100.p11 .bar{-webkit-transform:rotate(39.6deg);-moz-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);-o-transform:rotate(39.6deg);transform:rotate(39.6deg)}.c100.p12 .bar{-webkit-transform:rotate(43.2deg);-moz-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);-o-transform:rotate(43.2deg);transform:rotate(43.2deg)}.c100.p13 .bar{-webkit-transform:rotate(46.8deg);-moz-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);-o-transform:rotate(46.8deg);transform:rotate(46.8deg)}.c100.p14 .bar{-webkit-transform:rotate(50.4deg);-moz-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);-o-transform:rotate(50.4deg);transform:rotate(50.4deg)}.c100.p15 .bar{-webkit-transform:rotate(54deg);-moz-transform:rotate(54deg);-ms-transform:rotate(54deg);-o-transform:rotate(54deg);transform:rotate(54deg)}.c100.p16 .bar{-webkit-transform:rotate(57.6deg);-moz-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);-o-transform:rotate(57.6deg);transform:rotate(57.6deg)}.c100.p17 .bar{-webkit-transform:rotate(61.2deg);-moz-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);-o-transform:rotate(61.2deg);transform:rotate(61.2deg)}.c100.p18 .bar{-webkit-transform:rotate(64.8deg);-moz-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);-o-transform:rotate(64.8deg);transform:rotate(64.8deg)}.c100.p19 .bar{-webkit-transform:rotate(68.4deg);-moz-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);-o-transform:rotate(68.4deg);transform:rotate(68.4deg)}.c100.p20 .bar{-webkit-transform:rotate(72deg);-moz-transform:rotate(72deg);-ms-transform:rotate(72deg);-o-transform:rotate(72deg);transform:rotate(72deg)}.c100.p21 .bar{-webkit-transform:rotate(75.6deg);-moz-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);-o-transform:rotate(75.6deg);transform:rotate(75.6deg)}.c100.p22 .bar{-webkit-transform:rotate(79.2deg);-moz-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);-o-transform:rotate(79.2deg);transform:rotate(79.2deg)}.c100.p23 .bar{-webkit-transform:rotate(82.8deg);-moz-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);-o-transform:rotate(82.8deg);transform:rotate(82.8deg)}.c100.p24 .bar{-webkit-transform:rotate(86.4deg);-moz-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);-o-transform:rotate(86.4deg);transform:rotate(86.4deg)}.c100.p25 .bar{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.c100.p26 .bar{-webkit-transform:rotate(93.6deg);-moz-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);-o-transform:rotate(93.6deg);transform:rotate(93.6deg)}.c100.p27 .bar{-webkit-transform:rotate(97.2deg);-moz-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);-o-transform:rotate(97.2deg);transform:rotate(97.2deg)}.c100.p28 .bar{-webkit-transform:rotate(100.8deg);-moz-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);-o-transform:rotate(100.8deg);transform:rotate(100.8deg)}.c100.p29 .bar{-webkit-transform:rotate(104.4deg);-moz-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);-o-transform:rotate(104.4deg);transform:rotate(104.4deg)}.c100.p30 .bar{-webkit-transform:rotate(108deg);-moz-transform:rotate(108deg);-ms-transform:rotate(108deg);-o-transform:rotate(108deg);transform:rotate(108deg)}.c100.p31 .bar{-webkit-transform:rotate(111.6deg);-moz-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);-o-transform:rotate(111.6deg);transform:rotate(111.6deg)}.c100.p32 .bar{-webkit-transform:rotate(115.2deg);-moz-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);-o-transform:rotate(115.2deg);transform:rotate(115.2deg)}.c100.p33 .bar{-webkit-transform:rotate(118.8deg);-moz-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);-o-transform:rotate(118.8deg);transform:rotate(118.8deg)}.c100.p34 .bar{-webkit-transform:rotate(122.4deg);-moz-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);-o-transform:rotate(122.4deg);transform:rotate(122.4deg)}.c100.p35 .bar{-webkit-transform:rotate(126deg);-moz-transform:rotate(126deg);-ms-transform:rotate(126deg);-o-transform:rotate(126deg);transform:rotate(126deg)}.c100.p36 .bar{-webkit-transform:rotate(129.6deg);-moz-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);-o-transform:rotate(129.6deg);transform:rotate(129.6deg)}.c100.p37 .bar{-webkit-transform:rotate(133.2deg);-moz-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);-o-transform:rotate(133.2deg);transform:rotate(133.2deg)}.c100.p38 .bar{-webkit-transform:rotate(136.8deg);-moz-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);-o-transform:rotate(136.8deg);transform:rotate(136.8deg)}.c100.p39 .bar{-webkit-transform:rotate(140.4deg);-moz-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);-o-transform:rotate(140.4deg);transform:rotate(140.4deg)}.c100.p40 .bar{-webkit-transform:rotate(144deg);-moz-transform:rotate(144deg);-ms-transform:rotate(144deg);-o-transform:rotate(144deg);transform:rotate(144deg)}.c100.p41 .bar{-webkit-transform:rotate(147.6deg);-moz-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);-o-transform:rotate(147.6deg);transform:rotate(147.6deg)}.c100.p42 .bar{-webkit-transform:rotate(151.2deg);-moz-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);-o-transform:rotate(151.2deg);transform:rotate(151.2deg)}.c100.p43 .bar{-webkit-transform:rotate(154.8deg);-moz-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);-o-transform:rotate(154.8deg);transform:rotate(154.8deg)}.c100.p44 .bar{-webkit-transform:rotate(158.4deg);-moz-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);-o-transform:rotate(158.4deg);transform:rotate(158.4deg)}.c100.p45 .bar{-webkit-transform:rotate(162deg);-moz-transform:rotate(162deg);-ms-transform:rotate(162deg);-o-transform:rotate(162deg);transform:rotate(162deg)}.c100.p46 .bar{-webkit-transform:rotate(165.6deg);-moz-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);-o-transform:rotate(165.6deg);transform:rotate(165.6deg)}.c100.p47 .bar{-webkit-transform:rotate(169.2deg);-moz-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);-o-transform:rotate(169.2deg);transform:rotate(169.2deg)}.c100.p48 .bar{-webkit-transform:rotate(172.8deg);-moz-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);-o-transform:rotate(172.8deg);transform:rotate(172.8deg)}.c100.p49 .bar{-webkit-transform:rotate(176.4deg);-moz-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);-o-transform:rotate(176.4deg);transform:rotate(176.4deg)}.c100.p50 .bar{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100.p51 .bar{-webkit-transform:rotate(183.6deg);-moz-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);-o-transform:rotate(183.6deg);transform:rotate(183.6deg)}.c100.p52 .bar{-webkit-transform:rotate(187.2deg);-moz-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);-o-transform:rotate(187.2deg);transform:rotate(187.2deg)}.c100.p53 .bar{-webkit-transform:rotate(190.8deg);-moz-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);-o-transform:rotate(190.8deg);transform:rotate(190.8deg)}.c100.p54 .bar{-webkit-transform:rotate(194.4deg);-moz-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);-o-transform:rotate(194.4deg);transform:rotate(194.4deg)}.c100.p55 .bar{-webkit-transform:rotate(198deg);-moz-transform:rotate(198deg);-ms-transform:rotate(198deg);-o-transform:rotate(198deg);transform:rotate(198deg)}.c100.p56 .bar{-webkit-transform:rotate(201.6deg);-moz-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);-o-transform:rotate(201.6deg);transform:rotate(201.6deg)}.c100.p57 .bar{-webkit-transform:rotate(205.2deg);-moz-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);-o-transform:rotate(205.2deg);transform:rotate(205.2deg)}.c100.p58 .bar{-webkit-transform:rotate(208.8deg);-moz-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);-o-transform:rotate(208.8deg);transform:rotate(208.8deg)}.c100.p59 .bar{-webkit-transform:rotate(212.4deg);-moz-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);-o-transform:rotate(212.4deg);transform:rotate(212.4deg)}.c100.p60 .bar{-webkit-transform:rotate(216deg);-moz-transform:rotate(216deg);-ms-transform:rotate(216deg);-o-transform:rotate(216deg);transform:rotate(216deg)}.c100.p61 .bar{-webkit-transform:rotate(219.6deg);-moz-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);-o-transform:rotate(219.6deg);transform:rotate(219.6deg)}.c100.p62 .bar{-webkit-transform:rotate(223.2deg);-moz-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);-o-transform:rotate(223.2deg);transform:rotate(223.2deg)}.c100.p63 .bar{-webkit-transform:rotate(226.8deg);-moz-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);-o-transform:rotate(226.8deg);transform:rotate(226.8deg)}.c100.p64 .bar{-webkit-transform:rotate(230.4deg);-moz-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);-o-transform:rotate(230.4deg);transform:rotate(230.4deg)}.c100.p65 .bar{-webkit-transform:rotate(234deg);-moz-transform:rotate(234deg);-ms-transform:rotate(234deg);-o-transform:rotate(234deg);transform:rotate(234deg)}.c100.p66 .bar{-webkit-transform:rotate(237.6deg);-moz-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);-o-transform:rotate(237.6deg);transform:rotate(237.6deg)}.c100.p67 .bar{-webkit-transform:rotate(241.2deg);-moz-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);-o-transform:rotate(241.2deg);transform:rotate(241.2deg)}.c100.p68 .bar{-webkit-transform:rotate(244.8deg);-moz-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);-o-transform:rotate(244.8deg);transform:rotate(244.8deg)}.c100.p69 .bar{-webkit-transform:rotate(248.4deg);-moz-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);-o-transform:rotate(248.4deg);transform:rotate(248.4deg)}.c100.p70 .bar{-webkit-transform:rotate(252deg);-moz-transform:rotate(252deg);-ms-transform:rotate(252deg);-o-transform:rotate(252deg);transform:rotate(252deg)}.c100.p71 .bar{-webkit-transform:rotate(255.6deg);-moz-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);-o-transform:rotate(255.6deg);transform:rotate(255.6deg)}.c100.p72 .bar{-webkit-transform:rotate(259.2deg);-moz-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);-o-transform:rotate(259.2deg);transform:rotate(259.2deg)}.c100.p73 .bar{-webkit-transform:rotate(262.8deg);-moz-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);-o-transform:rotate(262.8deg);transform:rotate(262.8deg)}.c100.p74 .bar{-webkit-transform:rotate(266.4deg);-moz-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);-o-transform:rotate(266.4deg);transform:rotate(266.4deg)}.c100.p75 .bar{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.c100.p76 .bar{-webkit-transform:rotate(273.6deg);-moz-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);-o-transform:rotate(273.6deg);transform:rotate(273.6deg)}.c100.p77 .bar{-webkit-transform:rotate(277.2deg);-moz-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);-o-transform:rotate(277.2deg);transform:rotate(277.2deg)}.c100.p78 .bar{-webkit-transform:rotate(280.8deg);-moz-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);-o-transform:rotate(280.8deg);transform:rotate(280.8deg)}.c100.p79 .bar{-webkit-transform:rotate(284.4deg);-moz-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);-o-transform:rotate(284.4deg);transform:rotate(284.4deg)}.c100.p80 .bar{-webkit-transform:rotate(288deg);-moz-transform:rotate(288deg);-ms-transform:rotate(288deg);-o-transform:rotate(288deg);transform:rotate(288deg)}.c100.p81 .bar{-webkit-transform:rotate(291.6deg);-moz-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);-o-transform:rotate(291.6deg);transform:rotate(291.6deg)}.c100.p82 .bar{-webkit-transform:rotate(295.2deg);-moz-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);-o-transform:rotate(295.2deg);transform:rotate(295.2deg)}.c100.p83 .bar{-webkit-transform:rotate(298.8deg);-moz-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);-o-transform:rotate(298.8deg);transform:rotate(298.8deg)}.c100.p84 .bar{-webkit-transform:rotate(302.4deg);-moz-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);-o-transform:rotate(302.4deg);transform:rotate(302.4deg)}.c100.p85 .bar{-webkit-transform:rotate(306deg);-moz-transform:rotate(306deg);-ms-transform:rotate(306deg);-o-transform:rotate(306deg);transform:rotate(306deg)}.c100.p86 .bar{-webkit-transform:rotate(309.6deg);-moz-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);-o-transform:rotate(309.6deg);transform:rotate(309.6deg)}.c100.p87 .bar{-webkit-transform:rotate(313.2deg);-moz-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);-o-transform:rotate(313.2deg);transform:rotate(313.2deg)}.c100.p88 .bar{-webkit-transform:rotate(316.8deg);-moz-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);-o-transform:rotate(316.8deg);transform:rotate(316.8deg)}.c100.p89 .bar{-webkit-transform:rotate(320.4deg);-moz-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);-o-transform:rotate(320.4deg);transform:rotate(320.4deg)}.c100.p90 .bar{-webkit-transform:rotate(324deg);-moz-transform:rotate(324deg);-ms-transform:rotate(324deg);-o-transform:rotate(324deg);transform:rotate(324deg)}.c100.p91 .bar{-webkit-transform:rotate(327.6deg);-moz-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);-o-transform:rotate(327.6deg);transform:rotate(327.6deg)}.c100.p92 .bar{-webkit-transform:rotate(331.2deg);-moz-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);-o-transform:rotate(331.2deg);transform:rotate(331.2deg)}.c100.p93 .bar{-webkit-transform:rotate(334.8deg);-moz-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);-o-transform:rotate(334.8deg);transform:rotate(334.8deg)}.c100.p94 .bar{-webkit-transform:rotate(338.4deg);-moz-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);-o-transform:rotate(338.4deg);transform:rotate(338.4deg)}.c100.p95 .bar{-webkit-transform:rotate(342deg);-moz-transform:rotate(342deg);-ms-transform:rotate(342deg);-o-transform:rotate(342deg);transform:rotate(342deg)}.c100.p96 .bar{-webkit-transform:rotate(345.6deg);-moz-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);-o-transform:rotate(345.6deg);transform:rotate(345.6deg)}.c100.p97 .bar{-webkit-transform:rotate(349.2deg);-moz-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);-o-transform:rotate(349.2deg);transform:rotate(349.2deg)}.c100.p98 .bar{-webkit-transform:rotate(352.8deg);-moz-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);-o-transform:rotate(352.8deg);transform:rotate(352.8deg)}.c100.p99 .bar{-webkit-transform:rotate(356.4deg);-moz-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);-o-transform:rotate(356.4deg);transform:rotate(356.4deg)}.c100.p100 .bar{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}.c100:hover{cursor:default}.c100:hover>span{width:3.33em;line-height:3.33em;font-size:.3em;color:#307bbb}.c100:hover:after{top:.04em;left:.04em;width:.92em;height:.92em}.c100.dark{background-color:#0077c2}.c100.dark .bar,.c100.dark .fill{border-color:#80d6ff !important}.c100.dark>span{color:#0077c2}.c100.dark:after{background-color:#111}.c100.dark:hover>span{color:#80d6ff}.c100.error{background-color:#700}.c100.error .bar,.c100.error .fill{border-color:#d00 !important}.c100.error:hover>span{color:#d00}.c100.error>span{color:#700}.c100.success{background-color:#000}.c100.success .bar,.c100.success .fill{border-color:lime !important}.c100.success:hover>span{color:lime}.c100.success>span{color:#090}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}h1{width:100%;margin-top:12px;text-align:center}body{font-family:sans-serif;background:url(/static/imgs/grain_background.png);background-color:#111;background-repeat:repeat;color:#fff}button,a.button{box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);border:1px solid #0077c2;background-color:#0077c2;color:#fff;font-size:1rem;padding:.75rem;margin-bottom:12px;display:inline-block;cursor:pointer;transition:background .2s}button+button,button+a.button,a.button+button,a.button+a.button{margin-left:12px}button:hover,a.button:hover{background-color:#42a5f5}input,textarea,select{border:none;background-color:#111;color:#fff;font-size:1rem;display:inline-block;padding:.25rem}input::placeholder,textarea::placeholder,select::placeholder{color:#999}input[type=submit]{cursor:pointer;background-color:#0077c2}form input,form textarea,form select{z-index:20;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);padding:.75rem;width:100%}form input~label,form textarea~label,form select~label{margin-top:24px}form textarea{background-color:#111;height:50vh}form label{z-index:30;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);background-color:#0077c2;width:100%;line-height:44px;display:inline-block;padding:4px 12px 4px;margin-top:12px}.error-list ul li{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);list-style:none;background-color:#998100;padding:.5rem;margin-bottom:.5rem}.error-list ul li.success{background-color:#0077c2}.split{display:grid;grid-template-columns:1fr 1fr}.test-case{outline:none;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);resize:none;border:none;height:200px;padding:8px;background-color:#111;color:#fff}.test-case:first-child{border-right:2px solid #0077c2}.header-line,.option-line{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#0077c2;padding:4px 12px 4px;margin-top:12px;display:inline-block;width:100%}.header-line>*,.option-line>*{line-height:44px;display:inline-block}.option-line{display:grid;grid-template-columns:1fr 1fr}.option-line>*:last-child{text-align:right}.button-list>*{margin:0px 8px 0px;background-color:#42a5f5;box-shadow:none;border:none;color:#fff;font-size:1rem;line-height:1.2rem;padding:4px 12px 4px;display:inline-block;cursor:pointer}.sidebar-page-container{display:grid;grid-template-columns:minmax(250px, 1fr) 5fr}#code-editor{position:relative;width:100%;min-height:56rem}.problem-description{font-size:1.2rem}/*# sourceMappingURL=core.css.map */ diff --git a/codebox/static/css/core.css.map b/codebox/static/css/core.css.map index f3ed07f..7e7f56b 100644 --- a/codebox/static/css/core.css.map +++ b/codebox/static/css/core.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_info.scss","../scss/problem/_sidebar.scss","../scss/leaderboard/_leaderboard.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA,QACC,cACA,WACA,WCIc,QDHd,OCoBe,KDnBf,gBACA,MAEA,2CAEA,aACA,kCAEA,qBACC,iBACA,kBAEA,yBACC,4BACA,eAIF,WACC,cACA,kBACA,YAEA,gBACC,SACA,qBACA,eAEA,eAEA,gBACA,iBACA,kBACA,mBACA,gBAEA,cACA,iBCnCY,QDqCZ,qBAEA,+CACC,gCACA,WAKH,yBACO,kBACA,WC/BQ,KDiCR,eACA,iBAEA,kBACA,gBAEA,eAEA,yBACN,kCAEM,iEACI,yBAEA,qHACR,cAII,2BACI,cACA,WAGJ,mDACL,aAES,kBACA,SACA,OACT,WAES,oFACI,gCAKA,mBAJA,+FACI,mBAIJ,0FACI,yBEjGpB,qBACC,WACA,iBAGD,OACC,YAGD,MACC,WAGD,QACC,kBAGD,EACC,qBACA,cAIA,SACC,aACA,qCAGC,uBACC,kBAGD,sBACC,iBAVH,SACC,aACA,qCAFD,SACC,aACA,qCAFD,SACC,aACA,qCAFD,SACC,aACA,qCAcF,UACC,aACA,8BAGC,wBACC,gBAGD,uBACC,iBAOD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAKH,IC9DI,2CDgEH,eAGC,gBAEC,kBAIF,kBAGC,2BAIF,kBACC,aACA,gCAGD,cACC,wBAEA,oDACA,oDACA,oDACA,oDACA,oDACA,oDAEY,4CD3FH,QC4FS,kDD3FH,QC4FE,iDD3FH,QC6FA,8CD3FH,KC4FS,oDD3FH,QC4FE,mDD3FH,QC6FJ,iDAEF,0CD7FH,KC8FS,gDD7FH,KC8FE,+CD7FH,KCgGb,0DC9GI,2CDgHH,sBAEA,4FACC,sBAIF,KACC,UAGD,MACC,WAIA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAGD,WACC,kBAGD,4BD5IgB,QC6IhB,2BD9IU,QC+IV,4BD7Ie,QC8If,4BD3IkB,QC4IlB,2BD7IY,KC8IZ,4BD5IiB,QC6IjB,gCACA,2BD3Ic,KGdd,cACI,YACA,YACH,kBAEA,+BAIG,wBACI,gBAGJ,wCACI,WACA,cACA,YAEA,iDACI,gBACA,aACA,8BDpBR,2CCwBQ,qDAEI,gBACA,iBACA,aACA,cAEA,iEACI,4BCjCpB,sBACC,WACA,6GACA,mBACA,kBACA,8BAEA,kCAEA,uCACC,WAEA,aACA,+BAEA,uBACA,wBACA,kBJVa,QIYb,8CACA,mCACA,yBAEA,eAEA,gDACC,uBAGD,8CACC,sBAGD,8FACC,wBAGD,iDACC,oCAGD,6CACC,yBAIF,8CACC,kBACA,yBACA,iBACA,oBACA,iBAGD,4CACC,gBACA,iBAEA,iBACA,iBACA,oBAEA,iBACA,kBC/DF,aHCI,2CGCH,gBAEA,YACA,WAEA,gCACC,WLEgB,QKDhB,YAEA,gCAGD,iCACC,kBACA,WAEA,mCACC,kBAGD,+DACA,+DAIF,aH1BI,2CG6BA,kBACA,iBAEH,kBAEG,uDACF,kBACA,WACA,MACA,OAEM,aACA,uCAEA,sFAGJ,+BACI,WL3CE,QK4CF,iBACA,YAGJ,wBACF,iCAEM,cAMA,iBALA,mDLlDO,QKmDP,0DAEN,wCLlDgB,QKkDuB,WAIjC,sDAEA,qCACI,YAKA,iBAHA,mEACA,iEAIA,wDLtDK,QKsDoC,WACzC,sDLtDI,QKsDqC,WACzC,0ECtEZ,81BACI,kCAGJ,izBACI,kBACA,2BACA,YACA,aACA,gCACA,kBCNA,+BACA,4BACA,2BACA,0BACA,uBDMJ,oxDCVI,iCACA,8BACA,6BACA,4BACA,yBDWJ,MAMI,kBACA,gBACA,UACA,WACA,kBACA,WACA,iBEjCc,KFsBd,qCCRA,mBDWwB,YCVxB,gBDUwB,YCTxB,WDSwB,YAUxB,aACI,WACA,cAGJ,UACI,gBAGJ,YACI,eAGJ,WACI,kBACA,WACA,UACA,OACA,MACA,UACA,gBACA,eACA,MEzDU,KF0DV,cACA,kBACA,mBCzCJ,4BD0CiC,ICzCjC,yBDyCiC,ICxCjC,uBDwCiC,ICvCjC,oBDuCiC,ICnCjC,4BDoCiC,ICnCjC,yBDmCiC,IClCjC,uBDkCiC,ICjCjC,oBDiCiC,IC7BjC,mCD8BwC,SC7BxC,gCD6BwC,SC5BxC,8BD4BwC,SC3BxC,2BD2BwC,SAGxC,YACI,kBACA,IExEO,MFyEP,KEzEO,MF0EP,cACA,YACA,kBACA,iBExEG,QFyEH,YACA,aCxDJ,4BDyDiC,ICxDjC,yBDwDiC,ICvDjC,uBDuDiC,ICtDjC,oBDsDiC,IClDjC,4BDmDiC,IClDjC,yBDkDiC,ICjDjC,uBDiDiC,IChDjC,oBDgDiC,IC5CjC,mCD6CwC,QC5CxC,gCD4CwC,QC3CxC,8BD2CwC,QC1CxC,2BD0CwC,QAGxC,aACI,kBACA,UACA,WACA,gCAuBA,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,gBCtGJ,iCACA,8BACA,6BACA,4BACA,yBDwGA,YACI,eACA,iBACI,aACA,mBACA,eACA,MEzHI,QF2HR,kBACI,IE9HS,MF+HT,KE/HS,MFgIT,YACA,aAIR,WACI,iBNhIO,QMiIP,iCAEI,gCAEJ,gBACI,MNtIG,QMwIP,iBACI,iBErII,KFwIJ,sBACI,MN9IA,QMkJZ,YACF,iBN1IW,KM2IL,mCAEI,6BAGA,uBACI,MNnJR,KMsJN,iBACC,MNrJU,KMwJT,cACI,sBACA,uCAEI,6BAGA,yBACI,WAGR,mBACI,WG1KZ,EACC,SACA,UACA,sBAGD,MACC,eAGD,GACC,WACA,gBACA,kBAGD,KACC,uBAEA,kDACA,sBACA,yBACA,WAGD,gBPjCI,2COmCH,yBACA,iBT9Bc,QS+Bd,WAEA,eACA,eACA,mBACA,qBAEA,eAEA,gEACC,iBAIF,sBACC,YACA,sBACA,WAEA,eACA,qBACA,eAEA,6DACC,WAIF,mBACC,eACA,iBT7Dc,QSiEd,qCACC,WPxEE,2CO2EF,eACA,WAEA,uDACC,gBAIF,cACC,sBACA,YAGD,WACC,WPzFE,2CO2FF,iBTrFa,QSsFb,WACA,iBAEA,qBACA,qBACA,gBAOD,kBPxGG,2CO2GF,gBACA,iBTlGe,QSmGf,cACA,oBAEA,0BACC,iBT3GY,QSgHf,OACC,aACA,8BAGD,WAKC,aPhIG,2COmIH,YACA,YAEA,aACA,YACA,sBACA,MT1IO,KS6HP,uBACC,+BAeF,0BP5II,2CO+IH,iBTzIc,QS0Id,qBACA,gBACA,qBACA,WAEA,8BACC,iBACA,qBAIF,aAGC,aACA,8BAEA,0BACC,iBAKD,eACC,mBACA,iBTrKQ,QSsKR,gBACA,YACA,WAEA,eACA,mBACA,qBACA,qBAEA,eAIF,wBACC,aACA,6CAGD,aACC,kBACA,WACA,iBAGD,qBACC","file":"core.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_info.scss","../scss/problem/_sidebar.scss","../scss/leaderboard/_leaderboard.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA,QACC,cACA,WACA,WCIc,QDHd,OCoBe,KDnBf,gBACA,MAEA,2CAEA,aACA,kCAEA,qBACC,iBACA,kBAEA,yBACC,4BACA,eAIF,WACC,cACA,kBACA,YAEA,gBACC,SACA,qBACA,eAEA,eAEA,gBACA,iBACA,kBACA,mBACA,gBAEA,cACA,iBCnCY,QDqCZ,qBAEA,+CACC,gCACA,WAKH,yBACO,kBACA,WC/BQ,KDiCR,eACA,iBAEA,kBACA,gBAEA,eAEA,yBACN,kCAEM,iEACI,yBAEA,qHACR,cAII,2BACI,cACA,WAGJ,mDACL,aAES,kBACA,SACA,OACT,WAES,oFACI,gCAKA,mBAJA,+FACI,mBAIJ,0FACI,yBEjGpB,qBACC,WACA,iBAGD,OACC,YAGD,MACC,WAGD,QACC,kBAGD,EACC,qBACA,cAIA,SACC,aACA,qCAGC,uBACC,kBAGD,sBACC,iBAVH,SACC,aACA,qCAFD,SACC,aACA,qCAFD,SACC,aACA,qCAFD,SACC,aACA,qCAcF,UACC,aACA,8BAGC,wBACC,gBAGD,uBACC,iBAOD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAKH,IC9DI,2CDgEH,eAGC,gBAEC,kBAIF,kBAGC,2BAIF,kBACC,aACA,gCAGD,cACC,wBAEA,oDACA,oDACA,oDACA,oDACA,oDACA,oDAEY,4CD3FH,QC4FS,kDD3FH,QC4FE,iDD3FH,QC6FA,8CD3FH,KC4FS,oDD3FH,QC4FE,mDD3FH,QC6FJ,iDAEF,0CD7FH,KC8FS,gDD7FH,KC8FE,+CD7FH,KCgGb,0DC9GI,2CDgHH,sBAEA,gFACC,sBACA,0BAGD,4FACC,sBAIF,KACC,UAGD,MACC,WAIA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,8BACA,qCACA,sCACA,oCACA,uCAEA,6BACA,oCACA,qCACA,mCACA,sCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAVA,gCACA,uCACA,wCACA,sCACA,yCAEA,+BACA,sCACA,uCACA,qCACA,wCAGD,WACC,kBAGD,4BDjJgB,QCkJhB,2BDnJU,QCoJV,4BDlJe,QCmJf,4BDhJkB,QCiJlB,2BDlJY,KCmJZ,4BDjJiB,QCkJjB,gCACA,2BDhJc,KGdd,cACI,YACA,YACH,kBAEA,+BAIG,wBACI,gBAGJ,wCACI,WACA,cACA,YAEA,iDACI,gBACA,aACA,8BDpBR,2CCwBQ,qDAEI,gBACA,iBACA,aACA,cAEA,iEACI,4BCjCpB,sBACC,WACA,6GACA,mBACA,kBACA,8BAEA,kCAEA,uCACC,WAEA,aACA,+BAEA,uBACA,wBACA,kBJVa,QIYb,8CACA,mCACA,yBAEA,eAEA,gDACC,uBAGD,8CACC,sBAGD,8FACC,wBAGD,iDACC,oCAGD,6CACC,yBAIF,8CACC,kBACA,yBACA,iBACA,oBACA,iBAGD,4CACC,gBACA,iBAEA,iBACA,iBACA,oBAEA,iBACA,kBC/DF,aHCI,2CGCH,gBAEA,YACA,WAEA,gCACC,WLEgB,QKDhB,YAEA,gCAGD,iCACC,kBACA,WAEA,mCACC,kBAGD,+DACA,+DAIF,aH1BI,2CG6BA,kBACA,iBAEH,kBAEG,uDACF,kBACA,WACA,MACA,OAEM,aACA,uCAEA,sFAGJ,+BACI,WL3CE,QK4CF,iBACA,YAGJ,wBACF,iCAEM,cAMA,iBALA,mDLlDO,QKmDP,0DAEN,wCLlDgB,QKkDuB,WAIjC,sDAEA,qCACI,YAKA,iBAHA,mEACA,iEAIA,wDLtDK,QKsDoC,WACzC,sDLtDI,QKsDqC,WACzC,0ECtEZ,81BACI,kCAGJ,izBACI,kBACA,2BACA,YACA,aACA,gCACA,kBCNA,+BACA,4BACA,2BACA,0BACA,uBDMJ,oxDCVI,iCACA,8BACA,6BACA,4BACA,yBDWJ,MAMI,kBACA,gBACA,UACA,WACA,kBACA,WACA,iBEjCc,KFsBd,qCCRA,mBDWwB,YCVxB,gBDUwB,YCTxB,WDSwB,YAUxB,aACI,WACA,cAGJ,UACI,gBAGJ,YACI,eAGJ,WACI,kBACA,WACA,UACA,OACA,MACA,UACA,gBACA,eACA,MEzDU,KF0DV,cACA,kBACA,mBCzCJ,4BD0CiC,ICzCjC,yBDyCiC,ICxCjC,uBDwCiC,ICvCjC,oBDuCiC,ICnCjC,4BDoCiC,ICnCjC,yBDmCiC,IClCjC,uBDkCiC,ICjCjC,oBDiCiC,IC7BjC,mCD8BwC,SC7BxC,gCD6BwC,SC5BxC,8BD4BwC,SC3BxC,2BD2BwC,SAGxC,YACI,kBACA,IExEO,MFyEP,KEzEO,MF0EP,cACA,YACA,kBACA,iBExEG,QFyEH,YACA,aCxDJ,4BDyDiC,ICxDjC,yBDwDiC,ICvDjC,uBDuDiC,ICtDjC,oBDsDiC,IClDjC,4BDmDiC,IClDjC,yBDkDiC,ICjDjC,uBDiDiC,IChDjC,oBDgDiC,IC5CjC,mCD6CwC,QC5CxC,gCD4CwC,QC3CxC,8BD2CwC,QC1CxC,2BD0CwC,QAGxC,aACI,kBACA,UACA,WACA,gCAuBA,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,gBCtGJ,iCACA,8BACA,6BACA,4BACA,yBDwGA,YACI,eACA,iBACI,aACA,mBACA,eACA,MEzHI,QF2HR,kBACI,IE9HS,MF+HT,KE/HS,MFgIT,YACA,aAIR,WACI,iBNhIO,QMiIP,iCAEI,gCAEJ,gBACI,MNtIG,QMwIP,iBACI,iBErII,KFwIJ,sBACI,MN9IA,QMkJZ,YACF,iBN1IW,KM2IL,mCAEI,6BAGA,uBACI,MNnJR,KMsJN,iBACC,MNrJU,KMwJT,cACI,sBACA,uCAEI,6BAGA,yBACI,WAGR,mBACI,WG1KZ,EACC,SACA,UACA,sBAGD,MACC,eAGD,GACC,WACA,gBACA,kBAGD,KACC,uBAEA,kDACA,sBACA,yBACA,WAGD,gBPjCI,2COmCH,yBACA,iBT9Bc,QS+Bd,WAEA,eACA,eACA,mBACA,qBAEA,eAEA,0BAEA,gEACC,iBAGD,4BACC,iBTjDQ,QSqDV,sBACC,YACA,sBACA,WAEA,eACA,qBACA,eAEA,6DACC,WAIF,mBACC,eACA,iBTnEc,QSuEd,qCACC,WP9EE,2COiFF,eACA,WAEA,uDACC,gBAIF,cACC,sBACA,YAGD,WACC,WP/FE,2COiGF,iBT3Fa,QS4Fb,WACA,iBAEA,qBACA,qBACA,gBAOD,kBP9GG,2COiHF,gBACA,iBTxGe,QSyGf,cACA,oBAEA,0BACC,iBTjHY,QSsHf,OACC,aACA,8BAGD,WAKC,aPtIG,2COyIH,YACA,YAEA,aACA,YACA,sBACA,MThJO,KSmIP,uBACC,+BAeF,0BPlJI,2COqJH,iBT/Ic,QSgJd,qBACA,gBACA,qBACA,WAEA,8BACC,iBACA,qBAIF,aAGC,aACA,8BAEA,0BACC,iBAKD,eACC,mBACA,iBT3KQ,QS4KR,gBACA,YACA,WAEA,eACA,mBACA,qBACA,qBAEA,eAIF,wBACC,aACA,6CAGD,aACC,kBACA,WACA,iBAGD,qBACC","file":"core.css"} \ No newline at end of file diff --git a/codebox/static/js/problem_submit.js b/codebox/static/js/problem_submit.js index 63864a9..fba9fa5 100644 --- a/codebox/static/js/problem_submit.js +++ b/codebox/static/js/problem_submit.js @@ -20,14 +20,15 @@ return editor.session.setMode(`ace/mode/${editor_lang}`); }); $('#submit-btn').click(function() { - var code, lang; + var code, comp_name, lang; lang = $('#language').val(); code = (ace.edit('code-editor')).getValue(); + comp_name = (window.location.pathname.split('/'))[1]; return $.post(window.location.pathname, { lang: lang, code: code }, function(data) { - return window.location.replace(`/submissions/view?submission_id=${data}`); + return window.location.replace(`/${comp_name}/submissions/view?submission_id=${data}`); }); }); return $('#word-problem-submit-btn').click(function() { diff --git a/codebox/static/js/problem_submit.js.map b/codebox/static/js/problem_submit.js.map index 6a74e96..f7015fe 100644 --- a/codebox/static/js/problem_submit.js.map +++ b/codebox/static/js/problem_submit.js.map @@ -6,8 +6,8 @@ "coffee/problem_submit.coffee" ], "names": [], - "mappings": ";AAAA;EAAA,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;IACd,CAAA,CAAE,WAAF,CAAc,CAAC,MAAf,CAAsB,QAAA,CAAC,EAAD,CAAA;AAClB,UAAA,KAAA,EAAA,MAAA,EAAA;MAAA,KAAA,GAAQ,CAAA,CAAE,EAAE,CAAC,MAAL,CAAY,CAAC,GAAb,CAAA;MAER,WAAA;AAAc,gBAAO,KAAP;AAAA,eACL,GADK;mBACI;AADJ,eAEL,KAFK;mBAEM;AAFN,eAGL,IAHK;mBAGK;AAHL,eAIL,KAJK;mBAIM;AAJN;;MAMd,MAAA,GAAS,GAAG,CAAC,IAAJ,CAAS,aAAT;aACT,MAAM,CAAC,OAAO,CAAC,OAAf,CAAuB,CAAA,SAAA,CAAA,CAAY,WAAZ,CAAA,CAAvB;IAVkB,CAAtB;IAYA,CAAA,CAAE,aAAF,CAAgB,CAAC,KAAjB,CAAuB,QAAA,CAAA,CAAA;AACnB,UAAA,IAAA,EAAA;MAAA,IAAA,GAAO,CAAA,CAAE,WAAF,CAAc,CAAC,GAAf,CAAA;MACP,IAAA,GAAO,CAAC,GAAG,CAAC,IAAJ,CAAS,aAAT,CAAD,CAAwB,CAAC,QAAzB,CAAA;aAEP,CAAC,CAAC,IAAF,CAAO,MAAM,CAAC,QAAQ,CAAC,QAAvB,EAAiC;QAC7B,IAAA,EAAM,IADuB;QAE7B,IAAA,EAAM;MAFuB,CAAjC,EAGG,QAAA,CAAC,IAAD,CAAA;eACC,MAAM,CAAC,QAAQ,CAAC,OAAhB,CAAwB,CAAA,gCAAA,CAAA,CAAmC,IAAnC,CAAA,CAAxB;MADD,CAHH;IAJmB,CAAvB;WAUA,CAAA,CAAE,0BAAF,CAA6B,CAAC,KAA9B,CAAoC,QAAA,CAAA,CAAA;AAChC,UAAA;MAAA,MAAA,GAAS,CAAA,CAAE,SAAF,CAAY,CAAC,GAAb,CAAA;aAET,CAAC,CAAC,IAAF,CAAO,MAAM,CAAC,QAAQ,CAAC,QAAvB,EAAiC;QAC7B,MAAA,EAAQ;MADqB,CAAjC,EAEG,QAAA,CAAC,IAAD,CAAA;eACC,UAAA,CAAW,IAAX,EAAiB,MAAM,CAAC,QAAQ,CAAC,MAAjC;MADD,CAFH;IAHgC,CAApC;EAvBc,CAAlB;AAAA", + "mappings": ";AAAA;EAAA,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;IACd,CAAA,CAAE,WAAF,CAAc,CAAC,MAAf,CAAsB,QAAA,CAAC,EAAD,CAAA;AAClB,UAAA,KAAA,EAAA,MAAA,EAAA;MAAA,KAAA,GAAQ,CAAA,CAAE,EAAE,CAAC,MAAL,CAAY,CAAC,GAAb,CAAA;MAER,WAAA;AAAc,gBAAO,KAAP;AAAA,eACL,GADK;mBACI;AADJ,eAEL,KAFK;mBAEM;AAFN,eAGL,IAHK;mBAGK;AAHL,eAIL,KAJK;mBAIM;AAJN;;MAMd,MAAA,GAAS,GAAG,CAAC,IAAJ,CAAS,aAAT;aACT,MAAM,CAAC,OAAO,CAAC,OAAf,CAAuB,CAAA,SAAA,CAAA,CAAY,WAAZ,CAAA,CAAvB;IAVkB,CAAtB;IAYA,CAAA,CAAE,aAAF,CAAgB,CAAC,KAAjB,CAAuB,QAAA,CAAA,CAAA;AACnB,UAAA,IAAA,EAAA,SAAA,EAAA;MAAA,IAAA,GAAO,CAAA,CAAE,WAAF,CAAc,CAAC,GAAf,CAAA;MACP,IAAA,GAAO,CAAC,GAAG,CAAC,IAAJ,CAAS,aAAT,CAAD,CAAwB,CAAC,QAAzB,CAAA;MAEP,SAAA,GAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAzB,CAA+B,GAA/B,CAAD,CAAqC,CAAA,CAAA;aAEjD,CAAC,CAAC,IAAF,CAAO,MAAM,CAAC,QAAQ,CAAC,QAAvB,EAAiC;QAC7B,IAAA,EAAM,IADuB;QAE7B,IAAA,EAAM;MAFuB,CAAjC,EAGG,QAAA,CAAC,IAAD,CAAA;eACC,MAAM,CAAC,QAAQ,CAAC,OAAhB,CAAwB,CAAA,CAAA,CAAA,CAAI,SAAJ,CAAc,gCAAd,CAAA,CAAgD,IAAhD,CAAA,CAAxB;MADD,CAHH;IANmB,CAAvB;WAYA,CAAA,CAAE,0BAAF,CAA6B,CAAC,KAA9B,CAAoC,QAAA,CAAA,CAAA;AAChC,UAAA;MAAA,MAAA,GAAS,CAAA,CAAE,SAAF,CAAY,CAAC,GAAb,CAAA;aAET,CAAC,CAAC,IAAF,CAAO,MAAM,CAAC,QAAQ,CAAC,QAAvB,EAAiC;QAC7B,MAAA,EAAQ;MADqB,CAAjC,EAEG,QAAA,CAAC,IAAD,CAAA;eACC,UAAA,CAAW,IAAX,EAAiB,MAAM,CAAC,QAAQ,CAAC,MAAjC;MADD,CAFH;IAHgC,CAApC;EAzBc,CAAlB;AAAA", "sourcesContent": [ - "$(document).ready ->\n $(\"#language\").change (ev) ->\n $lang = $(ev.target).val()\n\n editor_lang = switch $lang\n when 'c' then 'c_cpp'\n when 'cpp' then 'c_cpp'\n when 'py' then 'python'\n when 'lua' then 'lua'\n\n editor = ace.edit 'code-editor'\n editor.session.setMode \"ace/mode/#{editor_lang}\"\n\n $('#submit-btn').click ->\n lang = $('#language').val()\n code = (ace.edit 'code-editor').getValue()\n\n $.post window.location.pathname, {\n lang: lang,\n code: code\n }, (data) ->\n window.location.replace(\"/submissions/view?submission_id=#{data}\")\n\n $('#word-problem-submit-btn').click ->\n answer = $('#answer').val()\n\n $.post window.location.pathname, {\n answer: answer\n }, (data) ->\n setTimeout 1000, window.location.reload\n" + "$(document).ready ->\n $(\"#language\").change (ev) ->\n $lang = $(ev.target).val()\n\n editor_lang = switch $lang\n when 'c' then 'c_cpp'\n when 'cpp' then 'c_cpp'\n when 'py' then 'python'\n when 'lua' then 'lua'\n\n editor = ace.edit 'code-editor'\n editor.session.setMode \"ace/mode/#{editor_lang}\"\n\n $('#submit-btn').click ->\n lang = $('#language').val()\n code = (ace.edit 'code-editor').getValue()\n\n comp_name = (window.location.pathname.split '/')[1]\n\n $.post window.location.pathname, {\n lang: lang,\n code: code\n }, (data) ->\n window.location.replace(\"/#{comp_name}/submissions/view?submission_id=#{data}\")\n\n $('#word-problem-submit-btn').click ->\n answer = $('#answer').val()\n\n $.post window.location.pathname, {\n answer: answer\n }, (data) ->\n setTimeout 1000, window.location.reload\n" ] } \ No newline at end of file diff --git a/codebox/static/js/submission_reloader.js b/codebox/static/js/submission_reloader.js index ea24824..59f2836 100644 --- a/codebox/static/js/submission_reloader.js +++ b/codebox/static/js/submission_reloader.js @@ -1,11 +1,13 @@ // Generated by CoffeeScript 2.4.1 (function() { - var submission_id, updateStatus; + var competition_name, submission_id, updateStatus; submission_id = (new URLSearchParams(window.location.search)).get('submission_id'); + competition_name = (window.location.pathname.split('/'))[1]; + updateStatus = function() { - return $.get('/submissions/status', { + return $.get(`/${competition_name}/submissions/status`, { submission_id: submission_id }, function(html, _, data) { return $('#status-container').html(html); diff --git a/codebox/static/js/submission_reloader.js.map b/codebox/static/js/submission_reloader.js.map index a00c822..7b704fa 100644 --- a/codebox/static/js/submission_reloader.js.map +++ b/codebox/static/js/submission_reloader.js.map @@ -6,8 +6,8 @@ "coffee/submission_reloader.coffee" ], "names": [], - "mappings": ";AAAA;AAAA,MAAA,aAAA,EAAA;;EAAA,aAAA,GAAgB,CAAC,IAAI,eAAJ,CAAoB,MAAM,CAAC,QAAQ,CAAC,MAApC,CAAD,CAA4C,CAAC,GAA7C,CAAiD,eAAjD;;EAEhB,YAAA,GAAe,QAAA,CAAA,CAAA;WACX,CAAC,CAAC,GAAF,CAAM,qBAAN,EAA6B;MAAE,aAAA,EAAe;IAAjB,CAA7B,EAA+D,QAAA,CAAC,IAAD,EAAO,CAAP,EAAU,IAAV,CAAA;aAC3D,CAAA,CAAE,mBAAF,CAAsB,CAAC,IAAvB,CAA4B,IAA5B;IAD2D,CAA/D;EADW;;EAIf,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;AACjB,QAAA;IAAA,MAAA,GAAS,EAAA,CAAA;IACT,MAAM,CAAC,IAAP,CAAY,4BAAZ,EAA0C,aAA1C;WAEA,MAAM,CAAC,EAAP,CAAU,QAAV,EAAoB,QAAA,CAAA,CAAA;aACnB,YAAA,CAAA;IADmB,CAApB;EAJiB,CAAlB;AANA", + "mappings": ";AAAA;AAAA,MAAA,gBAAA,EAAA,aAAA,EAAA;;EAAA,aAAA,GAAgB,CAAC,IAAI,eAAJ,CAAoB,MAAM,CAAC,QAAQ,CAAC,MAApC,CAAD,CAA4C,CAAC,GAA7C,CAAiD,eAAjD;;EAChB,gBAAA,GAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAzB,CAA+B,GAA/B,CAAD,CAAqC,CAAA,CAAA;;EAExD,YAAA,GAAe,QAAA,CAAA,CAAA;WACX,CAAC,CAAC,GAAF,CAAM,CAAA,CAAA,CAAA,CAAI,gBAAJ,CAAqB,mBAArB,CAAN,EAAiD;MAAE,aAAA,EAAe;IAAjB,CAAjD,EAAmF,QAAA,CAAC,IAAD,EAAO,CAAP,EAAU,IAAV,CAAA;aAC/E,CAAA,CAAE,mBAAF,CAAsB,CAAC,IAAvB,CAA4B,IAA5B;IAD+E,CAAnF;EADW;;EAIf,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;AACjB,QAAA;IAAA,MAAA,GAAS,EAAA,CAAA;IACT,MAAM,CAAC,IAAP,CAAY,4BAAZ,EAA0C,aAA1C;WAEA,MAAM,CAAC,EAAP,CAAU,QAAV,EAAoB,QAAA,CAAA,CAAA;aACnB,YAAA,CAAA;IADmB,CAApB;EAJiB,CAAlB;AAPA", "sourcesContent": [ - "submission_id = (new URLSearchParams window.location.search).get 'submission_id'\n\nupdateStatus = ->\n $.get '/submissions/status', { submission_id: submission_id }, (html, _, data) ->\n $('#status-container').html html\n\n$(document).ready ->\n\tsocket = io()\n\tsocket.emit \"request-submission-updates\", submission_id\n\n\tsocket.on 'update', ->\n\t\tupdateStatus()\n" + "submission_id = (new URLSearchParams window.location.search).get 'submission_id'\ncompetition_name = (window.location.pathname.split '/')[1]\n\nupdateStatus = ->\n $.get \"/#{competition_name}/submissions/status\", { submission_id: submission_id }, (html, _, data) ->\n $('#status-container').html html\n\n$(document).ready ->\n\tsocket = io()\n\tsocket.emit \"request-submission-updates\", submission_id\n\n\tsocket.on 'update', ->\n\t\tupdateStatus()\n" ] } \ No newline at end of file diff --git a/codebox/static/scss/_utils.scss b/codebox/static/scss/_utils.scss index b9e8eea..c0c0c4b 100644 --- a/codebox/static/scss/_utils.scss +++ b/codebox/static/scss/_utils.scss @@ -113,6 +113,11 @@ pre { @include elevate(2px, rgba(0, 0, 0, 0.5)); background-color: #111; + .highlight { + background-color: #111; + transition: background 0.2s; + } + .highlight:hover { background-color: #333; } diff --git a/codebox/static/scss/core.scss b/codebox/static/scss/core.scss index 2f413a0..07a8c97 100644 --- a/codebox/static/scss/core.scss +++ b/codebox/static/scss/core.scss @@ -45,9 +45,15 @@ button, a.button { cursor: pointer; + transition: background 0.2s; + & + button, & + a.button { margin-left: 12px; } + + &:hover { + background-color: $primary; + } } input, textarea, select { diff --git a/codebox/utils/binding.moon b/codebox/utils/binding.moon index 2f673e0..86c82a5 100644 --- a/codebox/utils/binding.moon +++ b/codebox/utils/binding.moon @@ -10,13 +10,13 @@ class Binding bind_static: (name, service) => @static_bindings[name] = service - make: (name) => + make: (name, ...) => if @bindings[name] - return @bindings[name]() + return @bindings[name](...) elseif @statics[name] return @statics[name] elseif @static_bindings[name] - stat = @static_bindings[name]() + stat = @static_bindings[name](...) @statics[name] = stat return stat diff --git a/codebox/views/admin/competition.moon b/codebox/views/admin/competition.moon index 5019367..28c3c6d 100644 --- a/codebox/views/admin/competition.moon +++ b/codebox/views/admin/competition.moon @@ -12,7 +12,7 @@ class AdminCompetition extends html.Widget div class: 'option-line', -> span comp.name div class: 'button-list', -> - a href: (@url_for "admin.competition.activate", { competition_id: comp.id }), "Make active" + a href: (@url_for "admin.competition.toggle_active", { competition_id: comp.id }), "Toggle active" a href: (@url_for "admin.competition.edit", { competition_id: comp.id }), "Edit" a href: (@url_for "admin.competition.delete", { competition_id: comp.id}), 'Delete' diff --git a/codebox/views/admin/competition/edit.moon b/codebox/views/admin/competition/edit.moon index ff2694a..62db8f6 100644 --- a/codebox/views/admin/competition/edit.moon +++ b/codebox/views/admin/competition/edit.moon @@ -15,18 +15,22 @@ class AdminCompetitionEdit extends html.Widget label for: 'name', 'Competition name' input type: 'text', name: 'name', value: "#{@comp.name}", "" div -> - label for: 'time_offset', 'Time offset (in minutes)' - input type: 'number', name: 'time_offset', value: "#{@comp.time_offset}", "" + label for: 'short_name', 'URL name' + input type: 'text', name: 'short_name', value: "#{@comp.short_name}", "" - div class: 'split-2', -> - div -> + div class: 'split-3', -> + div class: 'pad-r-6', -> label for: 'start_time', 'Start time' input type: 'datetime-local', name: 'start_time', value: "#{@comp.start}", "" - div -> + div class: 'pad-l-6 pad-r-6', -> label for: 'end_time', 'End time' input type: 'datetime-local', name: 'end_time', value: "#{@comp.end}", "" + div class: 'pad-l-6', -> + label for: 'time_offset', 'Time offset (in minutes)' + input type: 'number', name: 'time_offset', value: "#{@comp.time_offset}", "" + div class: 'mar-t-48', -> text "" div class: 'split-3', -> diff --git a/codebox/views/competition/join.moon b/codebox/views/competition/join.moon index 998cc90..6dd0b68 100644 --- a/codebox/views/competition/join.moon +++ b/codebox/views/competition/join.moon @@ -10,5 +10,5 @@ class JoinCompetition extends html.Widget p "Would you like to join the current competition?" p "Your name will appear on the leaderboard and you will be able to see the problems for this competition." - a href: (@url_for 'join_competition'), class: 'button w100 ta-center', 'Join the competition' + a href: (@url_for 'join_competition', { competition_name: @competition.short_name }), class: 'button w100 ta-center', 'Join the competition' diff --git a/codebox/views/competition/list.moon b/codebox/views/competition/list.moon new file mode 100644 index 0000000..f52b9e5 --- /dev/null +++ b/codebox/views/competition/list.moon @@ -0,0 +1,23 @@ +html = require 'lapis.html' +require 'utils.table' + +class CompetitionList extends html.Widget + content: => + current_time = os.time() + h1 "Current Competitions" + + div class: 'content', -> + for comp in *@competitions + continue unless current_time <= comp\get_end_time_num! + + a class: 'button w100 ta-center', href: (@url_for "leaderboard", { competition_name: comp.short_name }), -> + text comp.name + + h1 "Past Competitions" + + div class: 'content', -> + for comp in *@competitions + continue if current_time <= comp\get_end_time_num! + + a class: 'button w100 ta-center', href: (@url_for "leaderboard", { competition_name: comp.short_name }), -> + text comp.name diff --git a/codebox/views/partials/navbar.moon b/codebox/views/partials/navbar.moon index 1a81169..ae9cb93 100644 --- a/codebox/views/partials/navbar.moon +++ b/codebox/views/partials/navbar.moon @@ -6,10 +6,13 @@ class Navigation extends html.Widget div class: 'navbar-logo', -> img src: '/static/imgs/logo.png' - ul -> - a href: (@url_for 'leaderboard'), -> li class: { 'selected': @navbar.selected == 0 }, 'Leaderboard' - a href: (@url_for 'problem'), -> li class: { 'selected': @navbar.selected == 1 }, 'Problems' - a href: (@url_for 'submission.list'), -> li class: { 'selected': @navbar.selected == 2 }, 'Submissions' + if @params.competition_name + ul -> + a href: (@url_for 'leaderboard', { competition_name: @params.competition_name }), -> li class: { 'selected': @navbar.selected == 0 }, 'Leaderboard' + a href: (@url_for 'problem' , { competition_name: @params.competition_name }), -> li class: { 'selected': @navbar.selected == 1 }, 'Problems' + a href: (@url_for 'submission.list', { competition_name: @params.competition_name }), -> li class: { 'selected': @navbar.selected == 2 }, 'Submissions' + else + div "" div class: 'navbar-username', -> if @user diff --git a/codebox/views/partials/problem_sidebar.moon b/codebox/views/partials/problem_sidebar.moon index 9def7ae..6447362 100644 --- a/codebox/views/partials/problem_sidebar.moon +++ b/codebox/views/partials/problem_sidebar.moon @@ -3,7 +3,7 @@ import Competitions, Users from require 'models' class ProblemSidebar extends html.Widget load_problems: => - @current_comp = Competitions\find active: true + @current_comp = Competitions\find short_name: @params.competition_name @problems = @current_comp\get_problems! for prob in *@problems @@ -16,7 +16,7 @@ class ProblemSidebar extends html.Widget @load_problems! for prob in *@problems - a href: (@url_for 'problem.description', problem_name: prob.short_name), -> + a href: (@url_for 'problem.description', { problem_name: prob.short_name, competition_name: @current_comp.short_name }), -> div { selected: prob.short_name == @params.problem_name correct: prob.tag == "correct" diff --git a/codebox/views/problem/problem.moon b/codebox/views/problem/problem.moon index 8ac8b4a..5b068d9 100644 --- a/codebox/views/problem/problem.moon +++ b/codebox/views/problem/problem.moon @@ -35,8 +35,12 @@ class ProblemsView extends html.Widget kind = Problems.kinds\to_name @problem.kind div "#{kind}" else - a style: "margin-bottom: 0; font-size: 1.4rem", class: 'ta-center button w100', href: (@url_for 'problem.submit', { problem_name: @problem.short_name }), -> - text "Make a submission" + a { + style: "margin-bottom: 0; font-size: 1.4rem" + class: 'ta-center button w100' + href: (@url_for 'problem.submit', { competition_name: @competition.short_name, problem_name: @problem.short_name }) + -> text "Make a submission" + } div class: 'box', -> div class: 'split-lr pad-12', -> diff --git a/codebox/views/ssr/job_result.moon b/codebox/views/ssr/job_result.moon index e33443b..49f8f5e 100644 --- a/codebox/views/ssr/job_result.moon +++ b/codebox/views/ssr/job_result.moon @@ -12,6 +12,7 @@ class JobResultView extends html.Widget @username = @job\get_user!.username @problem = @job\get_problem! + @competition = @job\get_competition! @bytes = @job.bytes @time_started = @job.time_initiated if @job.data @@ -58,7 +59,7 @@ class JobResultView extends html.Widget div class: 'fill', '' div class: 'mar-r-12', -> - a href: (@url_for "problem.submit", { problem_name: @problem.short_name }), class: 'button w100 ta-center mar-t-12', + a href: (@url_for "problem.submit", { competition_name: @competition.short_name, problem_name: @problem.short_name }), class: 'button w100 ta-center mar-t-12', "Create new submission" div class: 'header-line mar-t-4', -> @@ -76,7 +77,7 @@ class JobResultView extends html.Widget div "#{@username}" div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", -> div "Problem:" - a href: (@url_for 'problem.description', { problem_name: @problem.short_name }), "#{@problem.name}" + a href: (@url_for 'problem.description', { competition_name: @competition.short_name, problem_name: @problem.short_name }), "#{@problem.name}" div class: 'hightlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr', -> div "Time limit:" div "#{@problem.time_limit}ms" diff --git a/codebox/views/submission/list.moon b/codebox/views/submission/list.moon index b3949e7..d050ae2 100644 --- a/codebox/views/submission/list.moon +++ b/codebox/views/submission/list.moon @@ -20,7 +20,7 @@ class SubmissionList extends html.Widget div -> for job in *jobs tab_color = job.status == Jobs.statuses.correct and 'success' or 'error' - a href: (@url_for 'submission.view', {}, { submission_id: job.job_id }), -> + a href: (@url_for 'submission.view', { competition_name: @competition.short_name }, { submission_id: job.job_id }), -> div class: "highlight tabbed-split tab-24 #{tab_color}", -> span "" div class: 'pad-12 split-4', -> diff --git a/docs/todo b/docs/todo index 349d37e..de7023f 100644 --- a/docs/todo +++ b/docs/todo @@ -18,9 +18,10 @@ X Add page that simply renders the problem in the same way as the existing problem description [ ] Multiple active competitions at a time - * When users visit root of site, display list of active competitions - * Users join each competition independently - * Shouldn't be much overhead, just removing all instances where searching for currently active competition + X When users visit root of site, display list of active competitions + X Users join each competition independently + X Shouldn't be much overhead, just removing all instances where searching for currently active competition + * Guarantee there will be errors somewhere to find [ ] Add shortcuts around the site * Problem description -> Problem submissions -- 2.25.1